打开MySQL错误日志, 假设日志地址在 /usr/local/mysql/var/localhost.localdomain.pid 打开文件, 发现有以下一行错误报出来:
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
在MySQL控制台下面输入以下命令, 发觉Slave_IO_Running: No
SHOW SLAVE STATUS\G
一方面原因是因为网络通信的问题, 也有可能是日志读取错误的问题;
另一方面原因是在slave服务器进行了写操作, 改了东西。怎么办!
解决办法:
从机器停止slave
mysql> slave stop;
到master机器登录mysql:
记录master的bin的位置,例如:
mysql> show mster status; +-------------------+----------+--------------+-------------------------------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+-------------------------------------------+ | mysqld-bin.000010 | 106 | | information_schema,mysql | +-------------------+----------+--------------+-------------------------------------------+
日志为mysqld-bin.000010
刷新日志(不一定需要):
mysql> flush logs;
因为刷新日志file的位置会+1,即File变成为:mysqld-bin.000011
马上到slave执行
mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysqld-bin.000011',MASTER_LOG_POS=106; mysql> slave start; mysql> show slave status\G;