Мне кажется, что это обычный вариант использования, поэтому я удивлен, что об этом мало информации, извините, если это дубликат, но я иметь искал. :)
Я переношу клиентский веб-сайт с одной CMS на другую и одновременно перехожу на более новые, более быстрые машины. В рамках этого я перемещаю базу данных MySQL со старого сервера на новый.
Проблема в том, что старый сервер запускает MySQL 4 и новый MySQL 5. Поэтому, когда я выполняю mysqldump
на старом сайте, а затем попытаюсь запустить его на новом сайте, я получаю синтаксические ошибки.
ERROR 1064 (42000) at line 178: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to use
near 'BTREE (`id`),
KEY `f_ChangedOnWeb` (`f_ChangedOnWeb`),
KEY `f_AddressUpdate`' at line 56
Я также попытался использовать еще более старый синтаксис, сбрасывая с помощью --compatible mysql323, но это просто привело к
ERROR 1062 (23000) at line 2283: Duplicate entry '??????????' for key 2`...
Мне кажется, что это довольно распространенный вариант использования, но я не могу найти никакой помощи по этому поводу. Возможно, все мои поисковые запросы в Google просто тонут в нерелевантных ответах. Большинство, похоже, согласны с тем, что mysqldump - правильный ответ, но никто не упоминает, что вы можете получить синтаксические ошибки ...
Импорт прошел успешно после того, как я изменил все PRIMARY KEY TYPE BTREE
к PRIMARY KEY USING BTREE
. Я не знаю, правильное это изменение или нет, но, думаю, посмотрим ...
Там есть документация на сайте MySQL для миграции. Может это поможет?