MySQL Workbench: ошибка "Неверное строковое значение" при переносе PostgreSQL данных в MySQL - PullRequest
1 голос
/ 12 марта 2020

У меня проблема с кодированием при переносе данных из базы данных PostgreSQL в базу данных MySQL с помощью мастера миграции MySQL Workbench на Windows.

PostgreSQL версии 12
MySQL - версия 8 Моя Windows - WIndows Семь

Моя исходная база данных находится в postgreSQL, в UTF8 кодируется с помощью 'COLLATION: C "и ТИПА ХАРАКТЕРА: C" .
MySQL параметры по умолчанию для кодирования в файле параметров:
сервер набора символов: utf8
сервер сопоставления: utf8mb4_0900_ai_ci default_collation_for_utf8mb4: utf8mb4_0900_ai_ci

У меня нет проблем с go через процесс мастера миграции (соединения с БД, извлечение и повторное создание схемы и т. д. c ...). Но при выполнении импорта я всегда получаю одно и то же сообщение об ошибке, как только импорт пересекает данные VARCHAR с "é" (или "à" или "è"):

Ошибка выполнения оператора: неверное строковое значение: '\ xE9' для столбца 'xxxx' в строке y:

Я проверил "Драйвер отправляет данные alr тем не менее, при настройке передачи данных кодируется как UTF-8.

enter image description here

Я также пытался указать "ClientCharset = UTF -8 "в дополнительных параметрах исходного соединения дБ в мастере => не влияет.

enter image description here

Я не понимаю, почему é Символ не читается правильно, так как обе стороны должны читать UTF-8.

Тогда, в основном, если я go через мою исходную базу данных и сделаю обновление, чтобы заменить все é на eà на a и так далее ...), импорт успешен. Это легко, поскольку я работаю над небольшой тестовой БД, но не может быть долгосрочным решением для использования с производственной базой данных.

У кого-нибудь есть подсказка?

...