版本号:5.7
准备两台mysql,自己创建一个测试库,和表,主从各一个要求同名;这边我用的主:192.168.136.133 从:192.168.136.134
主配置
1.修改my.cnf,增加server-id=133和log_bin=canshenglinux1
my.cnf: mysql的配置项文件,不知道在哪的find / -name my.cnf
server-id:这项配置从机也需要配置,这个下面流程会有,这个不能和从机的server-id一样所以一般取ip的最后3位
log_bin:定义binlog前缀名(主从同步底层实现就是从机读取主机的binlog日志从而达到同步数据的效果)
2.修改完配置文件后,启动或者重启mysqld服务,在mysql安装目录下会发现这些新建的文件
3创建用作同步数据的用户
3.1先进入到mysql
3.2再创建同步数据的用户
grant replication slave on *.* to ‘repl’@‘slave_ip’ identified by ‘123456’;注意复制的命令到linux的操作界面中需要注意’的问题不然可能执行不成功,可能会报错Your password does not satisfy the current policy requirements,你的密码不符合规范,命令:set global validate_password_policy=0;
set global validate_password_length=1;
从配置
1.查看my.cnf,配置server-id=134,要求和主不一样
2.修改完配置文件后,启动或者重启mysqld服务 systemctl restart mysqld
3.用户名密码登录mysql
3.1stop slave;
3.2 change master to master_host=‘192.168.136.133’, master_user=‘repl’, master_password=‘123456’, master_port=3306,master_log_file=‘canshenglinux1.000004’, master_log_pos=776;
master_host:主机的ip
master_user:前面主机创建的用户名称
master_password:主机密码
master_port:端口号
master_log_file和master_log_pos请看下图
主机进入mysql输入show slave status\G
3.3start slave;
4判定主从是否配置成功
show slave status\G
需要强调一点,需要排查一下主从auto.cnf配置文件中的server.uuid不能相同,如果相同将主或者从的auto.cnf删除,重启一下mysql服务即可