MySQL Error number: 4066; Symbol: ER_CHANGE_REP_SOURCE_CANT_DISABLE_REQ_ROW_FORMAT_WITH_GTID_ONLY; S
文档解释
Error number: 4066; Symbol: ER_CHANGE_REP_SOURCE_CANT_DISABLE_REQ_ROW_FORMAT_WITH_GTID_ONLY; SQLSTATE: HY000
Message: REQUIRE_ROW_FORMAT cannot be disabled for replication channel ‘%s’ when GTID_ONLY=1.
错误说明
MySQL出现错误4066,这个错误也被称为ER_CHANGE_REP_SOURCE_CANT_DISABLE_REQ_ROW_FORMAT_WITH_GTID_ONLY,SQLSTATE是HY000。这意味着一个未指定的会话尝试从会话中禁用要求的执行格式,但GTID模式已经启用。本错误是版本5.7.9引入的。
常见案例
当MySQL复制代理尝试禁用会话执行格式时,会出现此错误。此错误在设置新主机时特别常见,对必须满足唯一性要求的master-slave复制安装也特别常见。
解决方法
最简单的解决办法是禁用GTID模式,然后再禁用会话格式。这可以通过在my.cnf文件指定相应设置变量或运行SET多节点语句来实现。
例如,可以在my.cnf配置文件中添加:
gtid-mode=OFF
transaction-isolation=READ-COMMITTED
或者,可以在会话中运行以下命令:
SET GLOBAL gtid_mode = OFF;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
禁用GTID模式确保记录的原子性,避免在master-slave复制中出现重复的记录。
另外,可以尝试通过将gtid_mode设置为ON_PERMISSIBILITY并不断尝试重启MySQL来更轻松地禁用会话格式,不过我觉得这种情况下更容易出错。
无论哪种办法,都可以解决ER_CHANGE_REP_SOURCE_CANT_DISABLE_REQ_ROW_FORMAT_WITH_GTID_ONLY错误。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341