Миграция на MariaDB с MySQL 5.0 или более ранних версий
Если вы переходите на MariaDB 5.1 с MySQL 5.1, то вам не нужно ничего делать с вашими данными или клиентами MySQL. Всё должно работать без проблем.
При переходе между разными основными версиями MariaDB или MySQL, необходимо запустить программу mysql_upgrade для преобразования несовместимых между версиями данных. Это также обновит таблицы привилегий в базе данных mysql до последнего формата.
Практически во всех случаях mysql_upgrade должна уметь преобразовать ваши таблицы без необходимости делать дамп и восстановление данных.
После установки MariaDB, просто выполните:
mysql_upgrade --verbose
Если вы хотите работать с определённым портом TCP/IP, выполните:
mysql_upgrade --host=127.0.0.1 --port=3308 --protocol=tcp
Если вы хотите подключиться через сокет, выполните:
mysql_upgrade --socket=127.0.0.1 --protocol=socket
Для просмотра других опций, используйте --help.
"mysql_upgrade" считывает секции my.cnf [mysql_upgrade] и [client] для получения значений по умолчанию.
Существует множество причин, по которым необходимо преобразовывать таблицы; они могут быть следующими:
- Изменился порядок сортировки (коллирование) для столбца индекса
- Изменился формат хранения типа поля
- Двигатель имеет новый формат хранения
- ARCHIVE изменил формат хранения между 5.0 и 5.1
- Изменился формат хранения имён таблиц
- В MySQL 5.1 имена таблиц закодированы таким образом, что имена файлов идентичны на всех компьютерах. Старые имена таблиц, содержащие запрещённые символы имён файлов, будут отображаться с префиксом #mysql50# в
SHOW TABLESдо тех пор, пока вы не преобразуете их.
- В MySQL 5.1 имена таблиц закодированы таким образом, что имена файлов идентичны на всех компьютерах. Старые имена таблиц, содержащие запрещённые символы имён файлов, будут отображаться с префиксом #mysql50# в
Если вы не преобразуете таблицы, может произойти одно из следующих:
- В журнале ошибок будут отображаться предупреждения каждый раз, когда вы обращаетесь к таблице с неверным (старым) именем файла.
- При поиске по значениям ключа вы можете не найти все строки.
- При обращении к таблице будет возвращено сообщение об ошибке "ERROR 1459 (HY000): Требуется обновление таблицы".
- Возможны сбои.
"mysql_upgrade" работает, вызывая mysqlcheck с различными параметрами и выполняя скрипт "mysql_fix_privileges". Если у вас возникнут проблемы с "mysql_upgrade", вы можете запустить эти команды отдельно, чтобы получить больше информации о том, что происходит.
Большинство вещей из раздела руководства MySQL 5.1 также применимы к MariaDB.
Существуют следующие различия между "mysql_upgrade" в MariaDB и MySQL (начиная с MariaDB 5.1.50):
- MariaDB будет корректно преобразовывать длинные имена таблиц.
- MariaDB будет преобразовывать таблицы InnoDB (InnoDB) (нет необходимости выполнять дамп/восстановление или
ALTER TABLE). - MariaDB будет преобразовывать старые архивные таблицы в новый формат 5.1 (примечание: новая функция в стадии тестирования).
- "mysql_upgrade --verbose" запустит "mysqlcheck --verbose", чтобы вы получили больше информации о том, что происходит.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/upgrading-to-mariadb-from-mysql/