mysql8.0.36主从复制(读写分离)配置教程

1、关闭防火墙
 

使用命令行关闭防火墙

在Ubuntu系统中,可以使用以下命令关闭防火墙:

sudo ufw disable

执行该命令后,系统会提示是否要关闭防火墙,确认后即可关闭防火墙。

查看防火墙状态

使用以下命令可以查看防火墙当前的状态:

sudo ufw status

如果防火墙已经关闭,则会显示如下信息:

Status: inactive

如果防火墙处于开启状态,则会显示如下信息:

Status: active

当前演示IP:

主库IP:192.168.91.152

从库IP:192.168.91.153

2、配置主库(192.168.91.152)

修改配置文件

vim /etc/my.cnf

 或

vim /etc/mysql/my.cnf

[mysqld]
#id要确保在局域网环境里是唯一的
server-id=1
#1代表只读,0代表可读写
read-only=0
#忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
#lbinlog-ignore-db=mysql
#指定同步的数据库,如需要请把以下的#注释符号删掉即可
#binlog-do-db=db_001

修改后,重启mysql服务

service mysqld restart

service mysql restart

进入mysql:

mysql -u root -p

创建用户:

-- 创建用户并设置密码
CREATE USER 'test123'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@123456';-- 赋予用户全部权限
GRANT ALL PRIVILEGES ON *.* TO 'test123'@'%';-- 刷新权限
FLUSH PRIVILEGES;

 显示当前主服务器(Master)二进制日志的状态信息

show master status;

记录一下File值和Position值

File值:binlog.000006

Position值:157

3、配置从库(192.168.91.153)

修改配置文件

vim /etc/my.cnf

 或

vim /etc/mysql/my.cnf
[mysqld]
#id要确保在局域网环境里是唯一的
server-id=2
#1代表只读,0代表可读写
read-only=1
#忽略的数据,指不需要同步的数据库,如需要请把以下的#注释符号删掉即可
#lbinlog-ignore-db=mysql
#指定同步的数据库,如需要请把以下的#注释符号删掉即可
#binlog-do-db=db_001

 修改后,重启mysql服务

service mysqld restart

service mysql restart

 进入mysql:

mysql -u root -p

修改复制源信息,指定新的主服务器

 mysql命令行输入:

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.91.152',SOURCE_USER='test123',SOURCE_PASSWORD='Root@123456',SOURCE_LOG_FILE='binlog.000006',SOURCE_LOG_POS=157;

 

-- 启动主从复制

START REPLICA;

-- 显示从库的状态信息

SHOW SLAVE STATUS \G;

成功了

4、开始测试

分别在主库、从库查看所有数据库列表:

SHOW DATABASES;

主库:

从库:

在主库执行以下SQL语句:

-- 创建数据库 db_001
CREATE DATABASE IF NOT EXISTS db_001 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 切换到数据库 db_001
USE db_001;-- 创建表 example_table
CREATE TABLE IF NOT EXISTS example_table (id INT AUTO_INCREMENT PRIMARY KEY,          -- 主键,自增长整数类型name VARCHAR(50) NOT NULL COMMENT '姓名',    -- 姓名,最大长度为50的字符串,不允许为空age INT COMMENT '年龄',                      -- 年龄,整数类型email VARCHAR(100) COMMENT '电子邮件'       -- 电子邮件,最大长度为100的字符串
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;-- 插入数据
INSERT INTO example_table (name, age, email) VALUES
('张三', 25, 'zhangsan@example.com'),
('李四', 30, 'lisi@example.com'),
('王五', 22, 'wangwu@example.com');

分别在主库、从库查看所有数据库列表:

SHOW DATABASES;

主库:

从库:

可以看到,从库和主库同步了

常见问题:

问题1:Slave_IO_Running: No

我是直接克隆的虚拟机,主库和从库的uuid一致了,所以需要修改一下

搜索auto.cnf文件

find / -iname "auto.cnf"

 找到:/var/lib/mysql/auto.cnf

vim /var/lib/mysql/auto.cnf

 修改UUID,要保证唯一性

  • 将两台机器的UUID改成不一样就行

 修改后,重启mysql服务

service mysqld restart

service mysql restart

进入mysql

mysql -u root -p

-- 启动主从复制

start replica;

 -- 显示从库的状态信息

SHOW SLAVE STATUS \G;

 成功了

问题2:ERROR 3021 (HY000): This operation cannot be performed with a running replica io thread; run STOP REPLICA IO_THREAD FOR CHANNEL '' first.

原因:

从库已经配置过,需要先停止,然后重置一下

停止:

stop replica;

重置:

reset replica;

重新设置:

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.91.152',SOURCE_USER='test123',SOURCE_PASSWORD='Root@123456',SOURCE_LOG_FILE='binlog.000006',SOURCE_LOG_POS=157;

-- 启动

START REPLICA;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/467896.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React18原理: 时间分片技术选择

渲染1w个节点的不同方式 1 &#xff09;案例1&#xff1a;一次渲染1w个节点 <div idroot><div><script type"text/javascript">function randomHexColor() {return "#" ("0000" (Math.random() * 0x1000000 << 0).toS…

单片机学习笔记---DS18B20温度传感器

目录 DS18B20介绍 模拟温度传感器的基本结构 数字温度传感器的应用 引脚及应用电路 DS18B20的原理图 DS18B20内部结构框图 暂存器内部 单总线介绍 单总线电路规范 单总线时序结构 初始化 发送一位 发送一个字节 接收一位 接收一个字节 DS18B20操作流程 指令介…

OpenAI宣布ChatGPT新增记忆功能;谷歌AI助理Gemini应用登陆多地区

&#x1f989; AI新闻 &#x1f680; OpenAI宣布ChatGPT新增记忆功能&#xff0c;可以自由控制内存&#xff0c;提供个性化聊天和长期追踪服务 摘要&#xff1a;ChatGPT新增的记忆功能可以帮助AI模型记住用户的提问内容&#xff0c;并且可以自由控制其内存。这意味着用户不必…

【C++第二阶段】空指针访问成员函数常成员函数常成员属性

你好你好&#xff01; 以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 空指针访问成员函数常成员函数&常成员属性 空指针访问成员函数 类对象类型的空指针可以访问成员函数&#xff0c;但是不能够访问带有成员属性的成员函数。…

算法刷题:复写零

复写零 .习题链接题目描述算法原理初始值步骤1步骤2我的答案: . 习题链接 复写零 题目描述 给你一个长度固定的整数数组 arr &#xff0c;请你将该数组中出现的每个零都复写一遍&#xff0c;并将其余的元素向右平移。 注意&#xff1a;请不要在超过该数组长度的位置写入元素…

【C++】内存详解(堆,栈,静态区)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

【DDD】学习笔记-事件风暴与领域分析建模

在确定了全景事件流之后&#xff0c;可以在战略设计层面继续精进&#xff0c;鉴别出领域与限界上下文的边界&#xff0c;进入战术设计阶段的领域分析建模。 事件风暴的分析模型要素 通过事件风暴进行领域分析建模&#xff0c;其核心的模型要素就是“事件”。除此之外&#xf…

CUDA编程 - 共享内存 - shared memory - 学习记录

CUDA编程 - 共享内存 共享内存一、为什么要使用 shared memory&#xff1f;1.1、从硬件出发理解&#xff1a;1.2、从软件出发理解&#xff1a; 二、如何使用shared memory2.1、静态共享内存2.2、动态共享内存 三、实践 - 使用共享内存执行矩阵乘法总结 共享内存 一、为什么要使…

基于 Python 深度学习的电影评论情感分析系统,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

13. 【Linux教程】移动文件和目录

移动文件和目录 前面小节介绍了如何创建文件和目录、删除文件和目录&#xff0c;本小节介绍如何使用 mv 命令移动文件和目录。 1. 移动文件或目录至另外一个目录下 可以使用 mv file_name 路径 这种格式&#xff0c;移动文件至其他目录下&#xff0c;后面跟的路径可以是相对路…

政安晨:【详细解析】【用TensorFlow从头实现】一个机器学习的神经网络小示例【解构演绎】

准备工作 咱们将通过这篇文章反复咀嚼我原来文章里提到的那篇《神经网络小实例》&#xff0c;大家可以先看看&#xff0c;比如做些环境准备等等&#xff08;这是我的这篇文章的链接&#xff09;&#xff1a; 政安晨的机器学习笔记——基于Anaconda安装TensorFlow并尝试一个神…

图像处理之《神经网络模型的通用隐写框架》论文阅读

一、文章摘要 在本文中&#xff0c;我们提出了一个通用的隐写框架&#xff0c;用于神经网络实现隐蔽通信。首先&#xff0c;我们设计了一种基线隐写方法&#xff0c;在网络训练过程中将秘密数据嵌入到给定神经网络(封面网络)的卷积层中。对于包含秘密数据的网络(隐写网络)&…