Постановка задачи
Был сервис на mysql 5.1. Нужно мигрировать на актуальную 8ю версию.
Заход с помощью mysql workbench не увенчался успехом, так как 5.1 уже давно не поддерживают.
mysqldump справился с задачей снять дамп, но при выполнении его на целевом сервере появились ошибки:
Cannot get geometry object from data you send to the GEOMETRY field
Диагностика
Беглый поиск подводит к использованию mysqldump с ключом --hex-blob
, но к результату это не приводит.
Ошибка сохраняется.
Экспорт дампа с ключами --hex-blob --extended-insert=FALSE
и последующий импорт даёт конкретную строку, в которой ошибка.
Просмотр дампа позволяет понять, что вместо геометрических данных mysqldump выгружает в пустых значениях binary ''
.
Импорт в mysql 8 версии преобразовать это поле в геометрию точки не может.
Но такое поведение замечено только при пустом исходном значении. При заполненном импортируется корректно.
Решение
Замена в файле дампа ,binary '',
-> ,NULL,
(например, с помощью массовой замены в mcedit
).
В моём случае также пришлось снять обязательность на поле point
.