Переход с MySQL на MariaDB
Для практических целей, вы можете рассматривать MariaDB как обновление MySQL:
- Перед обновлением, пожалуйста, проверьте наличие известных несовместимостей между вашей версией MySQL и версией MariaDB, на которую вы хотите перейти.
- В частности, обратите внимание, что тип JSON в MariaDB является LONGTEXT, а в MySQL — бинарным типом. См. Совместимость MariaDB с JSON MySQL.
- Если вы используете MySQL 8.0 или выше, вам необходимо использовать mysqldump для переноса вашей базы данных в MariaDB.
- Для обновления с очень старых версий MySQL см. Обновление до MariaDB с MySQL 5.0 (или более старой версии).
- В рамках одной и той же базовой версии (например, MySQL 5.5 -> MariaDB 5.5, MySQL 5.6 -> MariaDB 10.0 и MySQL 5.7 -> MariaDB 10.2) в большинстве случаев вы можете просто удалить MySQL и установить MariaDB, и всё будет работать. Нет необходимости делать дамп и восстанавливать базы данных. Как и при любом обновлении, мы рекомендуем создать резервную копию ваших данных заранее.
- Вы должны запустить mariadb-upgrade (как вы бы сделали с
mysql_upgradeв MySQL), чтобы завершить обновление. Это необходимо для того, чтобы ваши привилегии MySQL и таблицы событий были обновлены с новыми полями, используемыми MariaDB. Обратите внимание, что если вы используете пакет MariaDB,mariadb-upgradeобычно выполняется автоматически. - Все ваши старые клиенты и коннекторы (PHP, Perl, Python, Java и т.д.) будут работать без изменений (нет необходимости перекомпилировать). Это работает, потому что MariaDB и MySQL используют тот же протокол клиента, а клиентские библиотеки совместимы на бинарном уровне. Вы также можете использовать свои старые пакеты коннекторов MySQL с MariaDB, если хотите.
Обновление на Windows
В Windows не следует удалять MySQL и устанавливать MariaDB, так как это не сработает, и существующая база данных не будет найдена.
Таким образом, в Windows просто установите MariaDB и используйте мастер обновления, который входит в пакет установки и запускается установщиком MSI. Или, если вы предпочитаете командную строку, используйте mysql_upgrade_service <service_name> в командной строке.
Обновление my.cnf
Все параметры в вашем исходном MySQL my.cnf файле должны работать нормально для MariaDB.
Однако, так как MariaDB имеет больше функций, чем MySQL, есть несколько вещей, которые вы должны рассмотреть для изменения в вашем my.cnf файле.
- MariaDB по умолчанию использует хранилище Aria для внутренних временных файлов вместо MyISAM. Если у вас много временных файлов, вы должны добавить и установить
aria-pagecache-buffer-sizeв то же значение, что и уkey-buffer-size. - Если вы не используете таблицы MyISAM, вы можете установить
key-buffer-sizeв очень низкое значение, например, 64К. - Если вы используете MariaDB 10.1 или более ранние версии, и ваши приложения часто подключаются и отключаются от MariaDB, вы должны настроить
thread-cache-sizeна количество потоков одновременных запросов, которые вы обычно используете. Это важно в MariaDB, так как мы используем механизм выделения памяти jemalloc. jemalloc обычно имеет лучшую производительность при работе с множеством потоков по сравнению с другими механизмами выделения памяти, за исключением случаев создания и уничтожения большого количества потоков, в которых случае он будет тратить много ресурсов, пытаясь управлять хранилищем, специфичным для потока. Кэширование потоков решит эту проблему. - Если у вас большое количество подключений (> 100), которые в основном выполняют короткие запросы, вы должны рассмотреть использование пула потоков. Например, использование:
thread_handling=pool-of-threadsиthread_pool_size=128может обеспечить заметный прирост производительности в этом случае. Гдеthread_pool_sizeдолжно быть примерно2 * number of cores on your machine.
Другие моменты, требующие внимания
- Представления с определением
ALGORITHM=MERGEилиALGORITHM=TEMPTABLEслучайно поменялись местами между MariaDB и MySQL. Вам необходимо пересоздать представления, созданные с любым из этих определений (см. MDEV-6916). - MariaDB имеет версии LGPL C-коннектора и Java-клиента. Если вы выпускаете приложение, которое поддерживает MariaDB или MySQL, вы должны рассмотреть возможность использования этих версий!
- Вы должны рассмотреть возможность использования MyRocks хранилища или некоторых других новых хранилищ, предоставляемых MariaDB.
См. также
- MariaDB имеет множество новых функций, о которых вам следует знать.
- MariaDB против MySQL — Совместимость
- Миграция на MariaDB
- Общие сведения об обновлении можно найти на странице установки MariaDB.
- Существует видеоролик по обновлению с MySQL на MariaDB.
- Обновление до MariaDB в Debian 9
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/upgrading-from-mysql-to-mariadb/