MySQL二进制日志复制:可以设置为忽略错误吗?

mau*_*ana 11 mysql replication binlog mysql-error-1062

我正在运行一个主从MySQL二进制日志复制系统(p!),对于某些数据,它不同步(意味着,主机拥有的数据多于从机).但是奴隶经常在最轻微的MySQL错误上停止,这可以被禁用吗?(也许是复制奴隶的my.cnf设置ignore-replicating-errors或者某种类型;))

这就是发生的事情,当奴隶试图复制一个不存在的物品时,奴隶就会死亡.快速查看SHOW SLAVE STATUS\G;

       Slave-IO-Running: Yes
      Slave-SQL-Running: No
        Replicate-Do-DB: 
             Last-Errno: 1062
             Last-Error: Error 'Duplicate entry '15218' for key 1' on query. Default database: 'db'. Query: 'INSERT INTO db.table ( FIELDS ) VALUES ( VALUES )'
Run Code Online (Sandbox Code Playgroud)

我通过执行以下操作立即修复(一旦我意识到奴隶已经停止):

STOP SLAVE;
RESET SLAVE;
START SLAVE;
Run Code Online (Sandbox Code Playgroud)

... ...最近这已经变得有点烦人了,在我吐出某种PHP为我做这个之前,我想知道是否有一些my.cnf条目在第一次错误时不会杀死奴隶.

干杯,

/ MP

sha*_*nuo 15

停止奴隶; set global sql_slave_skip_counter = 1; 开始奴隶;

您只能忽略当前错误并继续复制过程.


小智 11

是的,在my.cnf中使用--slave-skip-errors = xxx,其中xxx是'all'或逗号sep错误代码列表.

  • 这样做的公平警告确实可以破坏您的从属数据库.出于某种原因,它们是错误的.:) (4认同)