我有一个 Percona MySQL 集群,有一个主节点和几个从节点。他们每个人都运行 MySQL 的“Ver 14.14 Distrib 5.5.40-36.1”。复制是基于行的。
我仅对从属设备的其中一张表运行了更改查询。计划是在所有从服务器上运行此查询,然后进行主切换,因为我们无法承受在主服务器上锁定表。
查询是:
ALTER TABLE order_item_units
MODIFY parent_id BIGINT(20) unsigned ;
Run Code Online (Sandbox Code Playgroud)
并在我使用检查从站时发布此信息show slave status
,我看到复制被破坏并出现以下错误:
表“database_name.order_item_units”的第 3 列无法从“int”类型转换为“bigint(20) unsigned”类型
当我检查该列时,它确实转换为BIGINT
.
现在我无法解决这个问题。我确实停止了奴隶并启动了奴隶,没有帮助。没有停止奴隶和 MySQL 重新启动,没有帮助。做了一个跳过计数器,也没有帮助。
要么该列不应该被转换,那么错误就是正确的,但可能根本不应该有任何错误。
如果列确实被转换了,那么为什么会出现错误?
任何线索我在这里错过了什么?