最新帖子 精华区 社区服务 会员列表 统计排行 银行
主题 : 解决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;
        
       至此,主从状态一般就是好的了,如果还是没好,则要重做主从,即从主要重新复制一份数据再做主从
      
From:上海市闵行区 顶端
快速回复 顶端
内容
HTML 代码不可用
使用签名
Wind Code自动转换

认证码:
按 Ctrl+Enter 直接提交