17 April 2018

Could not find first log file name in binary log index file

这个是由于 主从同步的时候出现异常,如果是数据库的 master 和 slave 出现不一致

  1. slave
    停止从库同步
    mysql> slave stop;
    
  2. master
    清空日志
    mysql> flush logs;
    
  3. master
    查看下主库的状态,主要是日志的文件和 position
    mysql> show master status;
    
  4. slave
    mysql> change master to master_log_file='log-bin.000004',master_log_pos=106;
    
  5. slave
    启动同步
    mysql> slave start;
    

canal 是模拟 mysql 的主从模式,将自己伪装为 slave。我们无法直接让 canal 修改同步状态,正确的做法是

  1. 停止 canal
  2. 找到 conf/example/meta.dat 这个文件,并修改里面的 journalNameposition
  3. 启动 canal