共计 879 个字符,预计需要花费 3 分钟才能阅读完成。
我先用 show master status; 在主机上查看了 master_log_pos 是 643530781。 然后马上导出全部数据,导出完了恢复到从机上, change master to master_host=’*****’,master_port=3506,master_user=’root’,master_password=’*****’,master_log_file=’mysql-bin.000001′,master_log_pos=643530781; start slave; Last_SQL_Error: Could not execute Write_rows event on table 表名; Duplicate entry ‘1544986975042408448’ for key ‘PRIMARY’, Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event’s master log mysql-bin.000001, end_log_pos 643531187 然后是这个错误,这是因为我查看了 pos 的值后,然后导出,数据库又有新的添加了。我记得 pos 值,不是我导出数据的值,是这个意思吧?只能让数据库没有新增,然后导出再弄么? |
网友回复:
注册 : 两个方法,一个用命令导出 sql,里面有 pos 的值,直接用,就算有新增也没关系,第二个 show master status; 之前先锁主库写入,网上有 sql,自行搜索
斌斌 : 导出用的下面命令,文件开头好像没写 pos 值,怎么弄呢。求助。mysqldump -uroot -p 数据库 > 2022.sql
傍晚升起的太阳 : 高级玩法,求教程。
斌斌 : 会了。加个 –master-data=2 导出
klgd: 现在应该使用 GTID 方式,不用再关注 log position。配置更简单,健壮性也更强了。网上文档已经很多了,可以参考一下