gpt4 book ai didi

mysql - Google Cloud MySQL 基于行的复制数据类型错误

转载 作者:行者123 更新时间:2023-11-30 00:14:15 24 4
gpt4 key购买 nike

我使用 Google Cloud SQL 作为主服务器(版本 5.5.37),并使用基于 ROW 的复制和单个数据库(使用 my.cnf 中的replicate-do-db)复制到 EC2 从属服务器(也是 5.5.37) )

如果我用 mysqldump 定义了所有表并开始复制,那么就没有任何问题。

问题是我是否表现

CREATE TABLE site_users(id INT NOT NULL AUTO_INCREMENT, nick VARCHAR(20), PRIMARY KEY (id));
INSERT INTO site_users(nick) VALUES("Bob");

在主服务器上一切正常,但在从服务器上我收到错误 1677

表“(db_name).site_users”的第 1 列无法从类型“varchar(60)”转换为类型“varchar(20)”

当我查询从站时

DESCRIBE site_users;

响应显示了一个与主服务器上完全定义的表。当我尝试不同的 VARCHAR 长度时,主设备发送的大小始终是表期望大小的 3 倍 - 例如,如果 nick 是 varchar(100),则错误显示“无法从 varchar(300) 类型转换...”

编辑:如果在实例化 SLAVE 时转储包含此表的数据库以及“mysql”数据库,则一切正常,除了从 MASTER 复制许多其他设置之外......是这样的吗?事情应该怎样做?这是我第一次使用replicate-do-db 在单个数据库上设置复制。

最佳答案

从站上的表需要与主站上的表具有相同的字符集。确保这一点的一种方法是在主服务器上执行 SHOW CREATE TABLE 并使用该命令在从服务器上创建表。

请注意,Cloud SQL 的默认字符集当前为 utf8。

关于mysql - Google Cloud MySQL 基于行的复制数据类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23791853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com