尝试使用MySQL Workbench将PostgreSQL数据库迁移到MySQL数据库时遇到字符问题

时间:2018-10-06 14:41:56

标签: mysql postgresql mysql-workbench mysql-error-1064 utf8mb4

我用作源数据库的PostgreSQL实例使用UTF-8编码和cp1252字符集/排序规则。我正在尝试在目标数据库上使用utf8mb4 / utfmb4_unicode_520_ci字符集/排序规则。我将所有相关的服务器/客户端字符集参数设置为utf8mb4 / utfmb4_unicode_520_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%准确,我只是希望它能工作。

我已经尝试过在这里阅读的所有内容,而且还没有骰子。任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这些代码看起来像cp1252,而不是utf8。如果这是postgres数据的典型特征,则应声明cp1252是源的编码(即字符集)。