今天一个朋友在做mysql主从复制的时候碰到了一些问题,他已经按照我之前的教程一步步做了。但是就是不知道是怎么回事。从数据库中使用命令show slave status\G查看到的结果如下图:
000
我们知道,要想mysql主从复制成功的先决条件是Slave_IO_Running和Slave_SQL_Running均为Yes,而上图所示的结果显然是有一个不满足条件。
再根据Last_IO_Error的错误代码2013及下面的错误提示我们可以知道,从数据库无法正常连接到主数据库。
这里原因有三:
1、主数据库没有给从数据库登录授权
2、网络不通
3、有防火墙
明白这三点之后我们就可以针对原因依次来解决它们:
登录主数据库,给从数据库授权
[root@localhost ~]# mysql -uroot –p123456    登录主数据库
mysql> grant replication slave on *.* to 'backup'@'192.168.48.130' identified by 'backup';           创建backup用户,并授权给从数据库连接使用。
02
检查网络是否通畅
[root@localhost ~]# ping -c 4 192.168.48.128     再从服务器上ping主服务器。
QQ截图20111013104639
分别在主从服务器上检查防火墙状态
我们可以直接关闭防火墙
运行命令:[root@localhost ~]# setup
111111111111
选择防火墙(Firewall configuretion)这一项.
001
将它Disabled掉。
002
或者你可以直接使用命令:
[root@localhost ~]# service iptables stop 即时生效,系统重启后失效
[root@localhost ~]# chkconfig iptables off  当前状态无效,系统重启后生效
大家可以结合使用
222222222
以上情况都排除完毕,我们来再测试一下主从是否能正常连接。
在从数据库中执行如下命令:
mysql>stop slave;
mysql>start slave;
000-1
然后查看主从连接状态
mysql>show slave status\G
07
经过上述操作,我那位朋友成功排除了主从不能复制的故障。