首先,确保主库和从库的数据库版本一致,虽说网上有大神说的跨版本,但是坑太多,不建议
下面,我用mysql5.7.26来演示.(本人能力有限,就不讲原理了,直接走流程)
主库修改mysql配置,然后重启mysql
a. windows的my.ini
b. linux下的my.cnf
虽然文件位置不一样,但是内容是一样的
#server_id随便写,不跟下面的从库重复
server_id=1234
#要同步的数据库
binlog-do-db=test_slave
#要生成的二进制日志文件名称
log-bin=mysql-bin
从库修改mysql配置,然后重启mysql
配置文件的路径参考上面的说明,从库比较简单就一个server_id
server_id=1000
主库备份,然后查看当前数据位置
备份没什么好说的,但是为了从库跟主库数据的一直,要先锁表再备份,直接进mysql上命令
a.锁表,use数据库,然后锁表
use test_slave;
flush tables with read lock;
b.备份,Navicat一键保存到桌面
c.查看数据位置
d.解锁
unlock tables;
e.给从库生成对应的用户权限
grant replication slave on *.* to backup@'192.168.0.200' identified by '123456';
grant replication slave on *.* to 用户名@'从库的ip地址' identified by '密码';
flush privileges; 刷新权限
从库配置复制行为的信息,然后启动slave线程
简单来说就是一句话:
change master to master_host='192.168.0.110',master_user='backup',master_password='123456',master_log_file='mysql-bin.000013',master_log_pos=22072;
change master to master_host='主库的ip地址',master_user='用户名',master_password='密码',master_log_file='日志名称',master_log_pos=数据位置;
start slave;
show slave status \G
一旦失败不要慌,重复执行以下命令,直到看到两个yes
stop slave;
reset slave;
change master to master_host='192.168.0.110',master_user='backup',master_password='123456',master_log_file='mysql-bin.000013',master_log_pos=22072;
start slave;
show slave status \G
然后就可以测试在主库进行增删改查了