- 查看配置文件是否正确:vim /etc/my.cnf 主机:log-bin=mysql-bin
server-id=130(ip后三位)
从机:log-bin=mysql-relay
server-id=135(ip后三位)
(如图所示)
2.查看主机状态的二进制文件名与从机配置的二进制文件名是否一致,如果不一致则需要重新修改
查看主机状态 show master status\G;
配置从机:(配置之前要先停掉slave服务:stop slave;)
change master to master_host = ‘192.168.42.28’, #主库的IP地址
master_user = ‘copy’, #在主库上创建的复制账号
master_password = ‘Nebula@123’, #在主库上创建的复制账号密码
master_log_file = ‘mysql-bin.000001’, #开始复制的二进制文件名(从主库查询结果中获取)
master_log_pos = 817; #开始复制的二进制文件位置(从主库查询结果中获取)
3.查看网络是否连接:主机和从机之间相互是否能ping通:telnet 192.168.204.135 3306
查看主机端口知否开通netstat -antlup | grep 3306
4.查看两台机器的防火墙是否关闭:systemctl status firewalld(查看防火墙状态)
如果防火墙处于开启 状态,那么就把防火墙关闭systemctl status firewalld(关闭防火墙)
(如图所示防火墙的状态为关闭,想要永久实现开机防火墙自动关闭则需要输入:
systemctl enable firewalld)
5.查看selinux防火墙是否关闭,setenforce 0(关闭selinux防火墙)
6.查看主机和从机的时间date是否同步
7.停掉slave服务:stop slave; 跳过错误步数,后面步数可变 set global sql_slave_skip_counter=1;
再启动slave :start slave; 后继续查看同步状态
8.如果以上步骤均不存在问题,那么我们就要查看mysql日志 cat /var/log/mysqld.log 从日志文件 的最后面查看报错原因.
常见报错(2003):可能是mysql数据库没有启动,也可能是数据库资源紧张,导致无法连接.
常见报错(1129):可能是同一ip在短时间内产生太多(超过mysql数据库max_connection_errors 的最大值)终端的数据库连接而导致的阻塞;我们可以在查看一下:show global variables like'%max_connect_errors%';
我们可以将其修改的大一些:set global max_connect_errors=1000;
修改之后主从复制同步即为正常.
常见报错(3117):你的报错信息从你配置文件里查找日志位置,查看server_id和UUID:主机和从机都 查看一下show variables like 'server_id'; 发现server_id一致导致IO进程不开启。
第一步:我们要先停掉slave服务:stop slave;
第二步:我们要修改server_id:set global server_id=238475;
第三步:我们要启动slave:start slave;
完成之后即可查看slave状态.
以上均为mysql主从复制的常见问题以及解决方案,希望对大家的学习有所帮助.