MySQL8.0主从复制
环境介绍:
主:使用VMware虚拟Linux系统(CentOS7),并安装mysql8.0
从:使用windows并安装mysql8.0
虽然两个数据库的环境并不一样,但是不会影响我们的MySQL主从复制。
步骤简述:
1.在Linux系统中安装MySQL(亲测可用:https://www.jianshu.com/p/d7b9c468f20d)
2.在MySQL中创建用于主从复制的用户并授权
3.在Windows中安装MySQL
4.配置主库
5.配置从库
主要介绍一下第4和第5步:
注意:MySQL 5.1.7版本之后,已经不支持把master配置属性写入my.cnf配置文件中了,只需要把同步的数据库和要忽略的数据库写入即可。
主服务器配置
在mysqld下增加如下参数
[mysqld]
#设置服务器id,为1表示主服务器,实例唯一ID,不能和canal的slaveId重复
server_id=1
#启动MySQ二进制日志系统
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
binlog-do-db=DB1
#不同步mysql系统数据库
binlog-ignore-db=mysql
从数据库配置
由于使用的是Windows 中的MySQL 所以在my.ini配置文件
[mysqld]中配置如下
#实例唯一ID,不能和canal的slaveId重复,表示为从数据库
server-id=2
#启动MySQL二进制日志系统
log-bin=mysql-bin
#选择row模式
binlog-format=ROW
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db=test_master
#不同步mysql系统数据库
replicate-ignore-db=mysql
配置好后重启两个数据库!
下面我们看下配置是否正确
在主数据库中执行 show master status;
在从数据库中执行下面指令
mysql> CHANGE MASTER TO
-> MASTER_HOST='服务器主机地址',
-> MASTER_USER='用户名',
-> MASTER_PASSWORD='密码!',
-> MASTER_LOG_FILE='binlog.000001',
-> MASTER_LOG_POS=1807;
Query OK, 0 rows affected, 1 warning (0.07 sec)
(2.)开始同步
mysql> START SLAVE;
(3.)查看Slave的运行状态
mysql> SHOW SLAVE STATUS\G
接下来就可以自己测试一下了,由于我使用的是Navicat 链接进行的测试所以就不在这里展示了。