Spec-Zone.ru › MariaDB

Переход с 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. Следующие разделы описывают их.

Параметры с измененными значениями по умолчанию

Большинство следующих параметров немного увеличили значение для повышения производительности. Они не должны использовать много дополнительной памяти, но некоторые из них используют немного больше места на диске. [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

Рекомендуемая процедура обновления:

  1. Установите innodb_fast_shutdown в 0. Это необходимо для обеспечения того, что при создании резервной копии в рамках обновления все данные записываются в файлы данных InnoDB, что упрощает любое восстановление в будущем.
  2. Выключите MySQL 5.5
  3. Создайте резервную копию
    • когда сервер выключен, это идеальное время для создания резервной копии ваших баз данных
    • сохраните копию резервной копии на внешних носителях или на другом компьютере для безопасности
  4. Выполните обновление с Debian 8 на Debian 9
  5. Во время обновления скрипт mysql_upgrade будет запущен автоматически; этот скрипт выполняет две вещи:
    1. Обновляет таблицы разрешений в базе данных mysql с некоторыми новыми полями
    2. Выполняет очень быструю проверку всех таблиц и отмечает их как совместимые с MariaDB 10.1
      • В большинстве случаев это должно быть быстрым процессом (в зависимости, конечно, от количества таблиц)
  6. Добавьте новые параметры в 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

Комментарии и предложения

Если у вас есть комментарии или предложения по тому, что можно добавить или изменить для улучшения этой страницы, пожалуйста, добавьте их в качестве комментариев ниже.

Примечания

  1. ↑ Переменная 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
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 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/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API