MySQL主从同步(不开GTID)

一、背景

了解并熟悉MySQL的主从同步的搭建过程,并解决搭建过程中所碰到的问题。

二、目标

了解并熟悉MySQL的主从同步的搭建过程,并解决搭建过程中所碰到的问题。

IP地址 MySQL版本 主从关系
192.168.3.244 5.6.51 Master
192.168.3.245 5.7.41 Slaver
192.168.3.246 8.0.33 Slaver

三、过程

1、安装对应版本的MySQL

MySQL安装部署-5.6.51-rpm

MySQL安装部署-5.7.41-rpm

MySQL安装部署-8.0.33-rpm

2、配置主(Master)数据库

(1) 修改数据库配置文件

vim /etc/my.cnf
更改配置文件:

[mysqld]#开启二进制日志
log-bin=mysql-bin #标识唯一id(必须),一般使用ip最后位
server-id=254

(2) 初始化

mysql_install_db --user=mysql --defaults-file=/etc/my.cnf

(3) 启动服务

mysql -uroot -p

(4) 修改密码

SET PASSWORD = PASSWORD('123456'); 

mysql -uroot -p123456

(5)设置可远程连接的权限

use mysql;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;

(6) 查看主服务器状态 默认初始值:

show master status;

master_log_file='mysql-bin.000005'
master_log_pos=120;

如果不是初始值,是因为设置了copy用户导致Position数据增加 需要重置一下状态

重置状态:

reset master;

(7) 对主库来说依然需要创建一个用于同步数据的账号,授权用户

grant replication slave on *.* to 'copy'@'%' identified by '123456';

3. 配置从(Master)数据库

3.1 [5.7.41]配置

1)配置文件

vim /etc/my.cnf
加入如下配置:
server-id=255

重新启动mysql服務:
systemctl restart mysqld

2)查看服务器状态 初始状态:Empty set

show slave status;

如果不是初始状态,建议重置一下

重置命令如下:
stop slave; #停止复制,相当于终止从服务器上的IO和SQL线程
reset slave;

3)设置从服务器的master

change master to master_host='192.168.3.244',
master_user='copy',
master_port=3306,master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=120;

4)执行开始复制

start slave;

5)查看主从复制是否搭建完成

show slave status \G

3.2 [8.0.33]配置

1)配置文件

vim /etc/my.cnf
加入如下配置:
server-id=256

重新启动mysql服務:
systemctl restart mysqld

2)查看服务器状态 初始状态:Empty set

show slave status;

如果不是初始状态,建议重置一下

重置命令如下:
stop slave; #停止复制,相当于终止从服务器上的IO和SQL线程
reset slave;

3)进入mysql后,设置从服务器的master

change master to master_host='192.168.3.244',
master_user='copy',
master_port=3306,master_password='123456',
master_log_file='mysql-bin.000001',master_log_pos=120;

4)执行开始复制

start slave;

5)查看主从复制是否搭建完成

show slave status \G

如果 Slave_IO_Running: 为no 执行如下命令:

stop slave;
reset slave;
start slave;

四、结果

1)在主服务器中建立一个testdb数据库:

2)在主服务器的testdb中建立一个t_user表并插入数据

3)可以发现主服务器的表中添加了值,从服务器中的表中也会添加一模一样的值

从库[5.7.41]:

从库[8.0.33]:

巨人的肩膀


MySQL主从复制的简单搭建_mysql 主从复制_yuwenS.的博客-CSDN博客

おすすめ

転載: blog.csdn.net/m0_57126939/article/details/130842305