关于mysql主从同步问题解决

问题1

  • mysql gtid复制方式导出数据报错

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don’t want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events

解释:当前数据库实例中开启了 GTID 功能, 在开启有 GTID 功能的数据库实例中, 导出其中任何一个库, 如果没有显示地指定–set-gtid-purged参数, 都会提示这一行信息. 意思是默认情况下, 导出的库中含有 GTID 信息, 如果不想导出包含有 GTID 信息的数据库, 需要显示地添加–set-gtid-purged=OFF参数.

解决

# 数据导出时
mysqldump -uroot  -p  --set-gtid-purged=OFF   --all-databases > test.sql
正常导入即可

问题二

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

致命错误:由于master和slave具有相同的mysql服务器uuid,导致I/O线程不进行;这些uuid必须不同才能使复制工作。

解决

修改uuid并重启服务
[root@localhost ~]# vim /var/lib/mysql/auto.cnf
[auto]
server-uuid=4f37a731-9b79-11e8-8013-000c29f0700f

问题三

  • 主从同步主键冲突问题

Last_SQL_Error: Error ‘Duplicate entry ‘1001-164761-0’ for key ‘PRIMARY’’ on query. Default database: ‘bug’. Query: ‘insert into misdata (uid,mid,pid,state,mtime) values (164761,1001,0,-1,1262623560)’

解决

#第一种方式,跳过错误
1.跳过指定数量的事务
mysql>stop slave;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务
mysql>start slave
   
2.修改mysql的配置文件,通过slave_skip_errors参数来跳过指定类型的错误或跳过所有错误
[root@mysql-slave ~]# vim /etc/my.cnf
[mysqld]
slave-skip-errors=1062,1053,1146 #跳过1062,1053,1146类型的错误
# slave-skip-errors=all #跳过所有错误

#第二种方式,针对互为主从情况
[root@mysql-slave ~]# vim /etc/my.cnf
# auto_increment_increment=2  # 自增减步长
# auto_increment_offset=2     # 自增减开始

主从同步指定库

解释: 从一个库的层面上来设置同步某个库或表,下面的方式,选其一。

  • 主库
binlog-do-db      二进制日志记录的数据库(多数据库用逗号,隔开)
例: binlog-do-db=test1,test2
表示test1、test2 同步,其他忽略,如果不填写表示同步全部
binlog-ignore-db 二进制日志中忽略数据库 (多数据库用逗号,隔开)
  • 从库
replicate-do-db    设定需要复制的数据库(多数据库使用逗号,隔开)
replicate-ignore-db 设定需要忽略的复制数据库 (多数据库使用逗号,隔开)
replicate-do-table  设定需要复制的表
replicate-ignore-table 设定需要忽略的复制表 
replicate-wild-do-table 同replication-do-table功能一样,支持通配符
replicate-wild-ignore-table 同replication-ignore-table功能一样,支持通配符

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值