是否可以从 MySQL 5.5 master 复制到 5.1 slave?

asp*_*zer 1 mysql replication master

简短版本:是否可以从 5.5 master 复制到 5.1 slave?

长版:我们从 5.0 到 5.5 进行了大规模升级。如果转储 400gb dbs 并将它们导入 5.5,这是一个漫长的过程。

5.5 复制好像彻底坏了。主机始终挂起,从机不断断开/重新连接并留下陈旧的 binlog_dump 连接(从 show processlist 中可见)。主机在关机时挂起,直到我在一个小时后关机“放弃”时必须杀死。最后它每天都会收到这种类型的错误“110423 13:55:48 [ERROR] Slave SQL:无法在表 prod.site_iplist 上执行 Delete_rows 事件;在‘site_iplist’中找不到记录,Error_code:1032;处理程序错误 HA_ERR_KEY_NOT_FOUND;事件的主日志 mysql-bin.000385, end_log_pos 65644796, Error_code: 1032" 这是一个将在 5.5.12 中修复的错误。

这非常令人失望,因为我们的 5.0 设置运行了 3 年。

无论如何,我希望迁移到 5.1.56(它至少有 56 个稳定产品的更新)。问题是我所有的数据库现在都是 5.5。

是否有可能有一个 5.5 主站和一个 5.1 从站?迁移过程是将 db 导入 5.1,然后启用复制,同步后将每个人故障转移到 5.1,然后在每个人都在 5.1 db 上时降级所有其他 5.5 服务器。

5.5 master --> 5.1 slave 会工作吗?如果是这样,它是否适用于当前的 MIXED 模式复制?我是否必须将其更改为仅声明?

谢谢!

Mat*_*Mat 5

您尝试执行的操作通常不受支持。引用自MySQL 版本之间复制兼容性文档:

MySQL 支持从一个主要版本复制到下一个更高的主要版本。例如,您可以从运行 MySQL 4.1 的 master 复制到运行 MySQL 5.0 的 slave,从运行 MySQL 5.0 的 master 复制到运行 MySQL 5.1 的 slave,等等。

从较新的 master 复制到较旧的 slave 是可能的,但通常不受支持。

它可能适用于这些版本,但远不是推荐的设置。我的意见是:不要这样做。

另请阅读升级复制设置

也就是说,升级到 MySQL 5.5 时,slave 必须是 MySQL 5.5,才能将 master 升级到 5.5。

(也许这个片段虽然我认为如果你重新导入到 5.1 并没有直接关系)

一旦从基于语句的复制切换到基于行的复制,并且在将第一个基于行的语句写入 binlog 之后,就无法将复制设置降级到以前的版本。