Переход с MySQL на MariaDB в Debian 9
MariaDB 10.1 теперь является сервером mysql по умолчанию в Debian 9 "Stretch". Эта страница содержит информацию об этом изменении и инструкции по обновлению вашей версии MySQL или MariaDB из Debian 8 "Jessie" до MariaDB 10.1 в Debian 9 "Stretch".
Общая информация
Версия MySQL в Debian 8 "Jessie" — 5.5. При установке большинство пользователей устанавливают пакет mysql-server, который зависит от mysql-server-5.5 package. В Debian 9 "Stretch" пакет mysql-server зависит от нового пакета default-mysql-server. Этот пакет, в свою очередь, зависит от mariadb-server-10.1. Пакет default-mysql-server в Jessie отсутствует.
Как в Jessie, так и в Stretch есть также пакет mariadb-server, являющийся аналогом пакета mysql-server, специфичным для MariaDB. В Jessie этот пакет зависит от mariadb-server-10.0, а в Stretch — от mariadb-server-10.1 (такой же, как и пакет default-mysql-server).
Таким образом, основное отличие репозитория Debian 9 "Stretch" заключается в том, что при установке пакета mysql-server в Stretch вы получите MariaDB 10.1, а не MySQL, как это было в предыдущих версиях Debian. Обратите внимание, что mysql-server — это просто пустой переходный метапакет, и пользователям рекомендуется устанавливать MariaDB с помощью фактического пакета mariadb-server.
Все приложения и инструменты, такие как популярный стек LAMP, в репозиториях, зависящих от пакета mysql-server, будут продолжать работать с MariaDB в качестве базы данных. Для новых установок нет никаких отличий при установке пакетов mysql-server или mariadb-server.
Перед обновлением
Если вы в настоящее время используете MySQL 5.5 в Debian 8 "Jessie" и планируете обновить до MariaDB 10.1 в Debian 9 "Stretch", следует учесть некоторые моменты:
Создайте резервную копию перед началом
Это основное обновление, поэтому перед началом рекомендуется выполнить полную резервную копию базы данных. MariaDB 10.1 совместима с MySQL 5.5 по диску и по сети, и команда разработчиков MariaDB провела обширные разработки и тестирования, чтобы сделать обновления максимально безболезненными и беспроблемными. Тем не менее, всегда рекомендуется регулярно делать резервные копии, особенно перед обновлением. Так как база данных должна быть остановлена для обновления, это хорошее время для создания резервной копии!
Измененные, переименованные и удаленные параметры
Некоторые значения параметров по умолчанию были изменены, некоторые были переименованы, а другие были удалены между MySQL 5.5 и MariaDB 10.1. Следующие разделы описывают их.
Параметры с измененными значениями по умолчанию
Большинство следующих параметров немного увеличили значение для повышения производительности. Они не должны использовать много дополнительной памяти, но некоторые из них используют немного больше места на диске.
| Параметр | Старое значение по умолчанию | Новое значение по умолчанию |
|---|---|---|
aria-sort-buffer-size |
128M |
256M |
back_log |
50 |
150 |
innodb-concurrency-tickets |
500 |
5000 |
innodb-log-file-size |
5M |
48M |
innodb_log_compressed_pages |
ON |
OFF |
innodb-old-blocks-time |
0 |
1000 |
innodb-open-files |
300 |
400 [2]
|
innodb-purge-batch-size |
20 |
300 |
innodb-undo-logs |
ON |
20 |
join_buffer_size |
128K |
256K |
max_allowed_packet |
1M |
4M |
max-connect-errors |
10 |
100 |
max-relay-log-size |
0 |
1024M |
myisam-sort-buffer-size |
8M |
128M |
optimizer-switch |
... | Добавлен extended_keys=on, exists_to_in=on
|
query_alloc_block_size |
8192 |
16384 |
query_cache_size |
0 |
1M |
query_cache_type |
ON |
OFF |
query_prealloc_size |
8192 |
24576 |
secure_auth |
OFF |
ON |
sql_log_bin |
Больше не влияет на репликацию событий в кластере Galera. | |
sql_mode |
empty |
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION |
sync_master_info |
0 |
10000 |
sync_relay_log |
0 |
10000 |
sync_relay_log_info |
0 |
10000 |
table_open_cache |
400 |
2000 |
thread_pool_max_threads |
500 |
1000 |
Параметры, которые были удалены или переименованы
Следующие параметры следует удалить или переименовать, если вы используете их в файлах конфигурации:
| Параметр | Причина |
|---|---|
engine-condition-pushdown |
Заменен на set optimizer_switch='engine_condition_pushdown=on'
|
innodb-adaptive-flushing-method |
Удален модулем XtraDB |
innodb-autoextend-increment |
Удален модулем XtraDB |
innodb-blocking-buffer-pool-restore |
Удален модулем XtraDB |
innodb-buffer-pool-pages |
Удален модулем XtraDB |
innodb-buffer-pool-pages-blob |
Удален модулем XtraDB |
innodb-buffer-pool-pages-index |
Удален модулем XtraDB |
innodb-buffer-pool-restore-at-startup |
Удален модулем XtraDB |
innodb-buffer-pool-shm-checksum |
Удален модулем XtraDB |
innodb-buffer-pool-shm-key |
Удален модулем XtraDB |
innodb-checkpoint-age-target |
Удален модулем XtraDB |
innodb-dict-size-limit |
Удален модулем XtraDB |
innodb-doublewrite-file |
Удален модулем XtraDB |
innodb-fast-checksum |
Переименован в innodb-checksum-algorithm |
innodb-flush-neighbor-pages |
Переименован в innodb-flush-neighbors |
innodb-ibuf-accel-rate |
Удален модулем XtraDB |
innodb-ibuf-active-contract |
Удален модулем XtraDB |
innodb-ibuf-max-size |
Удален модулем XtraDB |
innodb-import-table-from-xtrabackup |
Удален модулем XtraDB |
innodb-index-stats |
Удален модулем XtraDB |
innodb-lazy-drop-table |
Удален модулем XtraDB |
innodb-merge-sort-block-size |
Удален модулем XtraDB |
innodb-persistent-stats-root-page |
Удален модулем XtraDB |
innodb-read-ahead |
Удален модулем XtraDB |
innodb-recovery-stats |
Удален модулем XtraDB |
innodb-recovery-update-relay-log |
Удален модулем XtraDB |
innodb-stats-auto-update |
Переименован в innodb-stats-auto-recalc
|
innodb-stats-update-need-lock |
Удален модулем XtraDB |
innodb-sys-stats |
Удален модулем XtraDB |
innodb-table-stats |
Удален модулем XtraDB |
innodb-thread-concurrency-timer-based |
Удален модулем XtraDB |
innodb-use-sys-stats-table |
Удален модулем XtraDB |
rpl_recovery_rank |
Не используется в 10.0+ |
xtradb-admin-command |
Удален модулем XtraDB |
Рекомендованная процедура обновления для репликации
Если у вас есть настройка мастер-раб, обычная процедура — сначала обновить своих рабов до MariaDB, затем переместить одного из рабов в мастер и затем обновить ваш исходный мастер. В этом сценарии вы можете обновить MySQL до MariaDB или позже обновить до новой версии MariaDB без простоев.
Другие ресурсы для ознакомления перед началом обновления
Также может быть полезно ознакомиться с разделом Обновление MariaDB. Он содержит несколько статей об обновлении с MySQL до MariaDB и с одной версии MariaDB на другую. Для целей обновления MySQL 5.5 и MariaDB 5.5 очень похожи. В частности, см. статьи Обновление с MariaDB 5.5 до MariaDB 10.0 и Обновление с MariaDB 10.0 до MariaDB 10.1.
Если вам нужна помощь с обновлением или настройкой репликации, вы всегда можете обратиться в компанию MariaDB, чтобы найти экспертов, которые помогут вам в этом.
Обновление до MariaDB 10.1 с MySQL 5.5
Рекомендуемая процедура обновления:
- Установите innodb_fast_shutdown в
0. Это необходимо для обеспечения того, что при создании резервной копии в рамках обновления все данные записываются в файлы данных InnoDB, что упрощает любое восстановление в будущем. - Выключите MySQL 5.5
- Создайте резервную копию
- когда сервер выключен, это идеальное время для создания резервной копии ваших баз данных
- сохраните копию резервной копии на внешних носителях или на другом компьютере для безопасности
- Выполните обновление с Debian 8 на Debian 9
- Во время обновления скрипт mysql_upgrade будет запущен автоматически; этот скрипт выполняет две вещи:
- Обновляет таблицы разрешений в базе данных
mysqlс некоторыми новыми полями - Выполняет очень быструю проверку всех таблиц и отмечает их как совместимые с MariaDB 10.1
- В большинстве случаев это должно быть быстрым процессом (в зависимости, конечно, от количества таблиц)
- Обновляет таблицы разрешений в базе данных
- Добавьте новые параметры в my.cnf для активации функций
- Если вы измените
my.cnf, вам необходимо перезапуститьmysqldс помощью, например,sudo service mysql restartилиsudo service mariadb restart.
- Если вы измените
Обновление до MariaDB 10.1 с более старой версии MariaDB
Если вы установили MariaDB 5.5 или MariaDB 10.0 на свой компьютер Debian 8 "Jessie" из репозиториев MariaDB, вам необходимо обновить до MariaDB 10.1 при обновлении до Debian 9 "Stretch". Вы можете продолжить использование репозиториев MariaDB или перейти к использованию репозиториев Debian.
Если вы хотите продолжить использование репозиториев MariaDB, отредактируйте запись MariaDB в вашем файле sources.list и замените все вхождения 5.5 или 10.0 на 10.1. Затем выполните обновление, как предложено выше.
Если вы хотите перейти к использованию MariaDB 10.1 из репозиториев Debian, удалите или закомментируйте записи MariaDB в вашем файле sources.list. Затем выполните обновление, как предложено выше.
Если вы уже используете MariaDB 10.1 на вашем компьютере Debian 8 "Jessie", вы можете продолжить использование репозиториев MariaDB или перейти к использованию репозиториев Debian, как и с MariaDB 5.5 и 10.0. В любом случае обновление, в худшем случае, будет лишь незначительным обновлением с одной версии MariaDB 10.1 до более новой. В случае, если вы уже используете текущую версию MariaDB, которая есть в репозиториях Debian (или более новую), MariaDB не будет обновляться во время обновления системы, но будет обновляться при выпуске будущих версий MariaDB.
Перед выполнением любого крупного обновления системы, даже если сама MariaDB не обновляется, всегда следует выполнить полную резервную копию ваших данных!
Кластер MariaDB Galera
Если вы использовали кластер MariaDB Galera 5.5 или 10.0 на Debian 8 "Jessie", стоит отметить, что Galera Cluster включен по умолчанию в MariaDB 10.1, теперь нет необходимости устанавливать отдельный mariadb-galera-server пакет.
Параметры конфигурации для пользователей баз данных со знанием предмета
Для повышения производительности MariaDB в производственных средах, здесь приведены некоторые рекомендуемые дополнения к вашему файлу конфигурации, который в Debian находится по адресу /etc/mysql/mariadb.d/my.cnf:
[[mysqld]] # Cache for disk based temporary files aria_pagecache_buffer_size=128M # If you are not using MyISAM tables directly (most people are using InnoDB) key_buffer_size=64K
Причина вышеизложенного изменения заключается в том, что MariaDB использует новый движок хранения Aria для файлов временных файлов на диске вместо MyISAM. Основное преимущество Aria состоит в том, что он может кэшировать как индексы, так и строки, и, таким образом, обеспечивает лучшую производительность по сравнению с MyISAM для больших запросов.
Безопасные учетные записи root без пароля только при новых установках
В отличие от старых пакетов MySQL в Debian, MariaDB 10.0 и выше в Debian используют аутентификацию unix-сокету при новых установках, чтобы избежать проблем с управлением паролем root и быть более безопасными и более простыми в использовании с системами развертывания облачных сервисов.
Это касается только новых установок. Обновления со старых версий будут продолжать использовать существующую аутентификацию и учетные записи пользователей. Однако это стоит знать, так как это может повлиять на обновление зависимых систем, обычно, например, потребует переписывания скриптов Ansible и аналогичных задач. Новая функция намного проще старой, поэтому ее адаптация требует незначительных усилий.
См. также
- Отличия MariaDB в Debian (и Ubuntu)
- Настройка MariaDB для оптимальной производительности
- Новые возможности MariaDB, которые вам следует рассмотреть
- Что такое MariaDB 10.1
- Общие инструкции по обновлению с MySQL до MariaDB
Комментарии и предложения
Если у вас есть комментарии или предложения по тому, что можно добавить или изменить для улучшения этой страницы, пожалуйста, добавьте их в качестве комментариев ниже.
Примечания
- ↑ Переменная
innodb-open-filesпо умолчанию имеет значениеtable-open-cache(400- по умолчанию), если она установлена на любое значение меньше10, при условии, чтоinnodb-file-per-tableустановлено на1илиTRUE(по умолчанию). Еслиinnodb_file_per_tableустановлено на0илиFALSEиinnodb-open-filesустановлено на значение меньше10, значение по умолчанию300
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/moving-from-mysql-to-mariadb-in-debian-9/