同步问题:
1、Slave_SQL_Running: No
Slave_IO_Running: Yes
Slave_SQL_Running: NO
原因:
1.程序可能在slave上进行了写操作
2.也可能是slave机器重起后,事务回滚造成的.
解决办法I:
1.首先停掉Slave服务:slave stop
2.到主服务器上查看主机状态:记录File和Position对应的值。
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000020 | 135617781 | | |
+------------------+-----------+--------------+------------------+
3.到slave服务器上执行手动同步:
stop slave;
change master tomaster_host='192.168.88.128',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000020',master_log_pos=154;
start slave;
show slave status\G;
2、Slave
_IO_Running: No
Slave_IO_Running:NO
Slave_SQL_Running:Yes
Slave_IO_Running:NO的情况有下面两种:
1. 在配置slave同步时因为slave访问master没有权限导致;
2. master上的MySQL-bin.xxxxxx文件全被我误删除了;
对于第一种情况,仔细检查数据库访问权限即可解决;
对于第二种情况,下面稍微详细介绍一下:
首先看日志报错信息;
解决步骤:
重启master库:service mysqld restart
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 98 | | |
+------------------+----------+--------------+------------------+
mysql> slave stop;
mysql> change master toMaster_Log_File='mysql-bin.000001',Master_Log_Pos=98;
mysql> slave start;
mysql> show slave status\G
解决方法:导致lave_IO_Running为connecting 的原因主要有以下 3 个方面:
1、网络不通
2、密码不对
3、pos不对
解决步骤:
1、对于第一个问题,一般情况下都是可以排除的,也是最容易排除的。
2、在主库上修改用来复制的用户的密码。
3、 在做chang to 的时候注意log_pos 是否跟此时主机的一样。在主机上 show master status \G ;可以查看到
主机上:
mysql> show master status \G;
*************************** 1. row***************************
File: masters-bin.000003
Position: 2392
从上执行:
stop slave
从机上面执行change to 的正确
CHANGE MASTER TO
MASTER_HOST='192.168.199.12',
MASTER_USER='my',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='masters-bin.000003',
MASTER_LOG_POS= 2392;
start slave
show slave status;