linux mysql5.045复制从机器 
在线mysql 复制主机重新启动(迁移环境)  
复制从机 遇到奇怪复制错误
 (复制主机的参数my.cnf 简单修改了,从他的binlog 看他的是正常的
-rw-rw---- 1 mysql mysql 1.1G Aug 14 22:15 mysql-bin.001048
-rw-rw---- 1 mysql mysql 1.1G Aug 15 17:40 mysql-bin.001049
-rw-rw---- 1 mysql mysql 1.1G Aug 16 05:34 mysql-bin.001050
-rw-rw---- 1 mysql mysql 1.1G Aug 16 20:43 mysql-bin.001051
-rw-rw---- 1 mysql mysql 746M Aug 17 06:44 mysql-bin.001052----------从这里开始重新启动 按道理正常应该1.1g大小
                                                                     现在仅仅机器重新启动后为 746M
-rw-rw---- 1 mysql mysql 376M Aug 17 14:24 mysql-bin.001053
 )我在从机器从err.log里 取 mysql-bin.001052的最后丢失position 连接 复制主机
但是从机器死活不能正常连接到主机器
总是 
Slave_IO_Runnin      yes
Slave_SQL_Running    no结果类似下面错误
110817  8:34:13 [Note] Slave I/O thread: connected to master 'myuser@... 3306',  replication started in log 'mysql-bin.00153' at position 280764
110817  8:34:13 [Note] Slave SQL thread exiting, replication stopped in log 'mysql-bin.00153' at position 646
110817  8:40:33 [Note] Slave I/O thread killed while reading event
按照 正常道理
replication stopped in log 'mysql-bin.00153' at position 646 这个 数值应该大于 at position 280764但从错误日志里 'mysql-bin.00153' at position 646 到底为什么(position 646)会小
而且我在 'mysql-bin.00153'死活找不到 646 这个position 这有400 800 (中间是没有646的 而且我是从position 280764开始change master的
而且 我从 280764后面找到一些insert 有主键的语句  发现后面有些sql实际 是在从机器已经执行的 
这里从机器的错误positon 为什么是错误的。  该如何找到 正确的postion
  ) ?

解决方案 »

  1.   

    [error]的提示 110817 8:34:13 [Note] Slave I/O thread: connected to master 'myuser@... 3306', replication started in log 'mysql-bin.00153' at position 280764
    110817 8:34:13 [Note] Slave SQL thread exiting, replication stopped in log 'mysql-bin.00153' at position 646
    110817 8:40:33 [Note] Slave I/O thread killed while reading event
    replication stopped in log 'mysql-bin.00153' at position 646 这个 数值应该大于 at position 280764但从错误日志里 'mysql-bin.00153' at position 646 到底为什么(position 646)会小
      

  2.   

    解决主 服务器 意外关闭
    如果主服务器没有sync_binlog 配置 主服务器 他可能 不会 在崩溃前把二进制日志事件写入磁盘。
    从服务器io线程 因此也会处于读取永远不会到达磁盘的事件(上面问题比这个简单)的过程中。当主服务器重新启动,从服务器会重新俩连接并且再次读,但主服务器响应无法找到该事件。二进制日志转存过程通常是同时,这个ofen见到。
    解决是从下一个日志开始读取。如果设置 sync-binlog可以防止日志事件丢失