在尝试使用mysql workbench将postgresql数据库迁移到mysql数据库时遇到字符问题

bvhaajcl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(510)

我用作源数据库的postgresql示例使用utf-8编码和cp1252字符集/排序规则。我正在尝试对目标数据库使用utf8mb4/utfmb4\u unicode\u 520\u ci字符集/排序规则。我将所有相关的服务器/客户机字符集参数设置为utf8mb4/utfmb4\u unicode\u 520\u ci,以确保正确读取数据。尽管如此,我还是发现了大量类似这样的错误:

04:04:25 [INF][      copytable]: Statement execution failed: Incorrect string value: '\x92Angel...' for column 'user' at row 1:
    ...
    04:04:21 [INF][      copytable]: Statement execution failed: Incorrect string value: '\xE1cs' for column 'lname' at row 1:
    ...
    04:04:17 [INF][      copytable]: Statement execution failed: Incorrect string value: '\x85' for column 'user' at row 1:
    ...etc

我用于配置目标字符集/排序规则的字符串如下:

preInit=SET default_storage_engine=InnoDB,character_set_connection=utf8mb4,collation_connection=utf8mb4_unicode_520_ci,collation_server=utf8mb4_unicode_520_ci,character_set_server=utf8mb4

如何消除这些错误,或者至少忽略它们,这样它们就不会停止复制整个表的其余部分?在这一点上,我甚至不在乎数据是否100%准确,我只想让它工作。
我已经尝试了我在这里读到的所有东西,但这不是骰子。任何帮助都将不胜感激。

vmjh9lq9

vmjh9lq91#

这些代码看起来像cp1252,而不是utf8。如果这是postgres数据的典型情况,那么您应该声明cp1252是源的编码(aka charset)。

相关问题