电脑学习网 » MySQL » 解决server_errno=1236 Could not find first log file name in binary log index file (转到动态网页) »
| 主题 : 解决server_errno=1236 Could not find first log file name in binary log index file |
|
楼主
发表于: 2009-04-16 07:33
解决server_errno=1236 Could not find first log file name in binary log index file
/**
* Author: cnscn <http://www.cnscn.org 电脑学习网> */ [ERROR] Error reading packet from server: Could not find first log file name in binary log index file ( server_errno=1236) 此提示表示,无法在master服务器上xxx-bin.index日志中找到第一个日志文件 但,你打master服务器上的xxx-bin.index文件,可能看到xxx-bin.00001文件名在xxx-bin.index中,但却有一些别的文件名不存在,也就是中间少了很多连续的文件名,查看发现xxx-bin.0000x的这些文件却都存在 解决办法: 1)直接重启master数据库 在无操作的情况下,重新启动一下master数据库, 然后在slave上执行 MySQL> slave stop; MySQL> slave start; MySQL> show slave status \G; 如果 Slave_IO_Running: Yes Slave_SQL_Running: Yes 则表示主从已经OK, 否则,查看日志文件,如果发现还是报此错误server_errno=1236,则采取第二步: 2)补全master数据库xxx-bin.index文件中的日志文件名 a)在slave上查看当前的读取的master上的日志文件 MySQL> show slave status; ... Master_Log_File: mysql-bin.000032 Exec_Master_Log_Pos: 193568878 ... b) 补全master上xxx-bin.index文件中的日志文件名, 尤其是Master_Log_File: mysql-bin.000032 c) 然后重新启动master数据库 d) 在slave上执行slave stop; slave start; show slave status \G; 如果发现还是报此错误server_errno=1236,则采取第三步: 3)重新执行change master a)在slave上执行 MySQL> show slave status \G; ... Master_Log_File: mysql-bin.000032 Exec_Master_Log_Pos: 193568878 ... MySQL> slave stop; b)停止slave数据库,删除slave数据库binlog日志目录中的relay相关的日志relay-log.info,mysql-relay-bin.000001, mysql-relay-bin.0000xx, mysql-relay-bin.index, 然后重启slave数据库,并在slave上执行 MySQL> change master to master_host='xxxx', master_port=xxx, master_user='xxx', master_password='xxx', master_log_file='mysql-bin.000032', master_log_pos=193568878; MySQL> slave start; MySQL> show slave status \G; 查看状态,如果这时已经OK,则好,否则执行下面一步 c)重启master数据库 d)在slave上 MySQL> show slave status \G; 如果状态OK了,则好,否则执行下面的 MySQL> slave stop; MySQL> slave start; MySQL> show slave status \G; 至此,主从状态一般就是好的了,如果还是没好,则要重做主从,即从主要重新复制一份数据再做主从 |
|---|


