MySql8.0主从同步

本文详细介绍了如何在MySQL环境中进行基于binlog和gtid的主从同步配置,包括设置server-id、开启binlog/gtid、配置同步账号、备份与传输数据、从库配置以及同步和测试过程。

目录

环境准备

一、基于binlog的主从同步

1、主库配置

1.1、 设置server-id值并开启binlog参数(mysql自动开启binlog)

1.2、建立同步账号

1.3、同步主库数据到从库

2、从库配置

2.1、 设置server-id值并开启binlog参数(mysql自动开启binlog)

2.2、设定从主库同步

3、测试

3.1、在主库中创建db1数据库,创建student表,在student表中插入数据。

3.2在从数据库查看

二、基于gtid的主从同步配置

1、主库配置

1.1、开启gtid,并开启强一直性

2、从库配置

2.1、开启gtid,并开启强一直性

2.2设置主从复制的配置

3、测试

1、在主库中添加数据

2、在从库中查看数据


环境准备

两台机器一主一从。

主库(MySql Master):ip为:192.168.80.129

从库(MySql Slave)  :ip为:192.168.80.130

一、基于binlog的主从同步

1、主库配置

1.1、 设置server-id值并开启binlog参数(mysql自动开启binlog)

[root@node1 ~]# vim /etc/my.cnf.d/mysql-server.cnf

 server_id=129   #唯一

看看binlog是否开启

systemctl restart mysqld   #重启数据库

1.2、建立同步账号

mysql> create user rep@'192.168.80.%' identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> grant replication slave on *.* to rep@'192.168.80.%';设置权限
Query OK, 0 rows affected (0.00 sec)

1.3、同步主库数据到从库

[root@node1 ~]# mysqldump -B db1 >  db1.sql     #备份数据库

[root@node1 ~]# scp db1.sql 192.168.80.130:~    #将数据传输到从库中

2、从库配置

2.1、 设置server-id值并开启binlog参数(mysql自动开启binlog)

[root@node2 etc]# vim /etc/my.cnf.d/mysql-server.cnf

 server_id=130    #唯一

read_only=on      #只读

[root@node2 ~]# mysql < db1.sql    #将主库数据传到从库中

systemctl restart mysqld    #重启数据库

[root@node2 ~]# mysql -e "show databases";  #查看所以数据库

2.2、设定从主库同步

mysql> show master status;      #查看主数据库的二进制日志文件和位置(在主库mysql中查看)

配置从数据库连接到主数据库进行复制的参数

mysql> change master to   
         -> master_host='192.168.80.129',       主数据库的IP地址
         -> master_user='rep',                          设置了从数据库连接到用户名
         -> master_password='123456',           设置了从数据库连接到密码
         -> master_log_file='binlog.000002',    主数据库复制数据时使用的二进制日志文件名
         -> master_log_pos=1367;                   主数据库复制数据时使用的二进制日志位置=

mysql> start slave;    #启动从数据库的复制进程

mysql> show slave status \G    #显示从数据库的复制状态信息,包括当前从数据库连接的主数据库信息、复制进程的状态、已经复制的日志文件和位置等。

3、测试

3.1、在主库中创建db1数据库,创建student表,在student表中插入数据。

3.2在从数据库查看

二、基于gtid的主从同步配置

1、主库配置

1.1、开启gtid,并开启强一直性

[root@node1 ~]# vim /etc/my.cnf.d/mysql-server.cnf 

gtid_mode=on                                #开启gtid
enforce-gtid-consistency=on          #开启强一致性

[root@node1 ~]# systemctl restart mysqld   #重启数据库

2、从库配置

2.1、开启gtid,并开启强一直性

[root@node2 ~]# vim /etc/my.cnf.d/mysql-server.cnf 

gtid_mode=on                                #开启gtid
enforce-gtid-consistency=on          #开启强一致性

[root@node1 ~]# systemctl restart mysqld   #重启数据库

2.2设置主从复制的配置

mysql> change master to
    -> master_host='192.168.80.129',
    -> master_user='rep',
    -> master_password='123456',
    -> master_auto_position=1;         #使用自动定位

mysql> start slave;    #启动从数据库的复制进程

mysql> show slave status \G                 #显示从数据库的复制状态信息

3、测试

1、在主库中添加数据

2、在从库中查看数据

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值