🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 了解服务器的状态 一般使用show slave status命令来检查从服务器. 在查看从服务器信息中,首先要查看"Slave_IO_Running"和"Slave_SQL_Running"这个两个进程状态是否是"yes",Slave_IO_Running表明是否此进程能够又从服务器到主服务器上正确地读取BINLOG日志,并写入到从服务器的中继日志中.Slave_SQL_Running则表明,能否读取并执行中继日志中的BINGOG信息. ## 服务器复制出错的原因 在某些情况下,会出现从服务器更新失败,此时,首先需要确定是否是主从服务器的表不同造成的.如果是表结构不同导致的,则修改从服务器上的表与主服务器上的表一致,然后重新执行START SLAVE命令.服务器复制出错的常见问题如下: ### 出现"log event entry exceeded max_allowed_pack"错误 如果在应用中出现使用大的BLOG列或者长字符串,那么在从服务器上回复时,可能会出现这种错误,这是因为含有大文本的记录无法通过网络进行传输而导致的,解决方法是在主从服务器上添加max_allowed_packet参数,改参数默认是1M ```sql -- 查看大小 show variables like 'MAX_ALLOWED_PACKET'; -- 设置大小 set @@global.max_allowed_packet=16777216; ``` 数据库重新启动后生效 ### 多主复制时的自增长变量冲突问题 大多数情况下使用一台主服务器对一台或者多台从服务器,但是在某些情况下,可能会存在多个服务器配置为复制主服务器,使用auto_increment时应采取特殊步骤以防止键值冲突,否则插入行时多个主服务器会视图使用相同的auto_increment值. 服务器变量auto_increment_increment和auto_increment_offset可以协调多主服务器复制和auto_increment列 在多主服务器中复制到从服务器过程中,迟早都会发生主键冲突,为了解决这种情况,可以将不同的主服务器的这两个参数重新设置. 可以在A数据库服务器上设置auto_increment_increment=2,auto_increment_offset=1 在B数据库服务器上设置auto_increment_increment=2,auto_increment_offset=2 ```sql set @@auto_increment_increment=0 ``` |参数|说明| |-|-| |auto_increment_increment|表示自增长字段每次递增的量,默认是1,也就是1/2/3...,设置成10就是10/20/30...| |auto_increment_offset|表示自增长字段从那个数开始|