一、搭建前的准备
主库 192.168.1.76
从库 192.168.1.77
二、搭建
1、编辑配置文件
vi /etc/my.cnf
主库
[mysqld]
log-bin=mysql-bin
server-id=1
从库
[mysqld]
server-id=2
2、在主库创建复制用户
create user 'repl'@'192.168.1.77' identified by 'repl123';
grant replication slave on *.* to 'repl'@'192.168.1.77';
可以在从库验证下创建的复制用户后是否有效以及主从库之间的网络是否流畅
mysql -h 192.168.1.76 -urepl -p
3、建立主从复制
change master to master_host='192.168.1.76',master_user='repl',master_password='repl123',master_log_file='binlog.000006',master_log_pos=711,get_master_public_key=1;
4、开启主从复制
start slave
5、查看主从复制的状态
show slave status\G
至此主从异步复制搭建完成 。
三、可能遇到的问题
1、可能的原因一
主库和从库的my.cnf中的server-id设置的相同了,改正即可
2、可能的原因二
有可能你的备库的操作系统是主库备份过去的,所以uuid相同,这种情况只要改变其中一个库的uuid即可。
(1)判断uuid是否相同
分别在主从库查看
cat /var/lib/mysql/auto.cnf
若是相同,改变其中一个库的uuid。
注意:改变之后一定要重启服务。
四、测试
测试:搭完主从复制之后我测试了几种情况。
情况1:在从上写,主不跟着同步,问了前辈,业务上读写分离,主就是读写的,从就是读的。
情况2:从库的系统我是主库的系统备份的,之后我又把主库恢复快照(刚建好库),之后从库备份迁移到主库,即主库和从库互换了,过程步骤相同,主从复制成功。
情况3:在线修改了从库的server-id,主从复制没有错误。即8.0后支持动态更改server-id。
下一步计划:搭建一主多从。