什么max_allowed_packet足够大,为什么我需要更改它?
我在主从设置中安装了MySQL(5.5),并创建了另一个从服务器。 我停止了原来的从属服务器,转储了数据,复制并重新导入了它,然后运行良好。我注意到了原始从站的master_log pos,并使用这些命令将其设置在新的从站上 CHANGE MASTER TO MASTER_HOST='<ipaddress>', MASTER_USER='<username>', MASTER_PASSWORD='<password>', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000851', MASTER_LOG_POS=15824150, MASTER_CONNECT_RETRY=10; 当我开始新的奴隶时,我得到了 Last_IO_Error:从二进制日志读取数据时,主机出现致命错误1236:'日志事件条目超过了max_allowed_packet; 增加master上的max_allowed_packet 但是,当我启动原始从属服务器时,它运行起来很好,并且现在已同步。 所以问题是: 当前值是16M,我怎么知道要走多大?(我宁愿避免生产服务器的反复试验)。 当原来的从属服务器很好时,为什么我需要增加主控板上的值,问题可能出在新的从属服务器上吗? 更新 正如Rolando在主机,旧从机和新从机上建议的那样,我将max_allowed_packet增加到1073741824,然后重新启动它们(SET GLOBAL max_allowed_packet = 1073741824;由于某些原因,似乎没有用) 现在最后一个IO错误与以前相同,但是现在我看到了 Last_SQL_Error:中继日志读取失败:无法解析中继日志事件条目。可能的原因是:主站的二进制日志已损坏(您可以通过在二进制日志上运行“ mysqlbinlog”来检查),从站的中继日志已损坏(可以通过在中继日志上运行“ mysqlbinlog”来检查)网络问题,或主从MySQL的错误。如果要检查主站的二进制日志或从站的中继日志,则可以通过在此从站上发布“ SHOW SLAVE STATUS”来知道其名称。 如果我在主文件上执行一个mysqlbinlog,它会用命令滚动很久很久很久-该文件为722M-如果我为从属中继日志执行该操作 错误:Log_event :: read_log_event()中的错误:“健全性检查失败”,data_len:38916267,event_type:69 错误:无法读取偏移量为253的条目:日志格式错误或读取错误。 我检查了变量,但所做的更改有效 mysql>显示变量LIKE'%max_allowed_packet%'; 在新的从属设备上显示max_allowed_packetAND slave_max_allowed_packet,而在主设备上只有max_allowed_packet 所以我对母版进行了版本检查: mysql> show variables LIKE '%version%'; +-------------------------+--------------------------------------+ | …