090916  9:54:09[ERROR] Slave SQL: Error 'Duplicate entry '706766' for key 'PRIMARY'' on query. Default database: 'mikezhao'. Query: 'insert into data_clean.list_details(list_rid,content_eid,content,type,performer,performer_type,oa,oc,cp_code,product_code)
select '355',content_eid,content,content_type,performer,performer_type,oa,oc,cp_code,code from music', Error_code: 1062
090916  9:54:09 [Warning] Slave: Duplicate entry '706766' for key 'PRIMARY' Error_code: 1062
090916  9:54:09 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'log-bin.000053' position 46878
090916 10:39:17 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
从服务器错误消息如上,主服务器在list_details表上的(content_eid,content,content_version)建立了唯一性索引,我插入的数据没有在(content_eid,content)上重复的,在主服务器上插入的时候没有问题,但是从服务器却因为此失效了,
请高手指点!

解决方案 »

  1.   

    select * from t where list_rid=706766。看看有没有记录?
      

  2.   

    Duplicate entry '706766' for key 'PRIMARY' Error_code: 1062 ----------------------
    主键重复了所以,slave上的SQL同步线程会自动停掉了
    解决办法:方法1、检查slave上目的表的数据,看看是否可以手工把对应数据删除掉(确认删除数据不会有业务异常问题),然后start slave方法2、停slave上mysql服务,然后在mysql参数文件里面配置slave_skip_errors=1062,重新启动mysql服务(这样会跳过这个重复键值的错误,但建议处理问题后要及时修改回来,以免以后也跳过了错误)方法3、在slave上执行set global sql_slave_skip_counter=1,然后再执行slave start,这样,就会跳过这个错误了。方法4、重新初始化同步slave上所有数据。