2.11.4 Понижение версии бинарных и пакетных установок на Unix/Linux
В этом разделе описано, как понизить версию установок MySQL на основе бинарных файлов и пакетов в средах Unix/Linux. Описаны методы понижения версии «на месте» и логического понижения.
Понижение версии на месте
Понижение версии «на месте» включает в себя остановку новой версии MySQL, замену новых бинарных файлов или пакетов MySQL старыми и запуск старой версии MySQL в существующем каталоге данных.
Понижение версии «на месте» поддерживается для понижения между выпусками GA в рамках одного выпуска.
Понижение версии «на месте» не поддерживается для установок MySQL APT, SLES и Yum репозитория.
Для некоторых платформ Linux установка MySQL из RPM или пакетов Debian включает поддержку systemd для управления запуском и остановкой сервера MySQL. На этих платформах mysqld_safe не установлен. В таких случаях используйте systemd для запуска и остановки сервера вместо методов, описанных ниже. См. Раздел 2.5.10, «Управление сервером MySQL с помощью systemd».
Для выполнения понижения версии на месте:
Просмотрите информацию в Разделе 2.11.1, «Перед началом».
Если вы используете XA-транзакции с
InnoDB, выполнитеXA RECOVERперед понижением, чтобы проверить наличие незавершенных XA-транзакций. Если возвращаются результаты, либо подтвердите, либо откатайте XA-транзакции, выполнив операторXA COMMITилиXA ROLLBACK.-
Настройте MySQL для выполнения медленной остановки, установив
innodb_fast_shutdownна0. Например:mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
При медленной остановке
InnoDBвыполняет полную очистку и слияние буфера изменений перед остановкой, что гарантирует полную подготовку файлов данных в случае различий в формате файлов между выпусками. -
Остановите новый сервер MySQL. Например:
mysqladmin -u root -p shutdown
-
После медленной остановки удалите файлы журнала перегенерации
InnoDB(файлыib_logfile*) из каталогаdata, чтобы избежать проблем при понижении версии, связанных с изменениями формата файлов журнала перегенерации, которые могли произойти между выпусками.rm ib_logfile*
Понизьте версию бинарных файлов или пакетов MySQL «на месте», заменив новые бинарные файлы или пакеты старыми.
-
Запустите старый (пониженный) сервер MySQL, используя существующий каталог данных. Например:
mysqld_safe --user=mysql --datadir=
/path/to/existing-datadir -
Выполните mysql_upgrade. Например:
mysql_upgrade -u root -p
mysql_upgrade проверяет все таблицы во всех базах данных на несовместимости с текущей версией MySQL и пытается восстановить таблицы, если проблемы обнаружены.
-
Остановите и перезапустите сервер MySQL, чтобы убедиться, что все внесенные изменения в системные таблицы вступят в силу. Например:
mysqladmin -u root -p shutdown mysqld_safe --user=mysql --datadir=
/path/to/existing-datadir
Логическое понижение версии
Логическое понижение версии включает использование mysqldump для создания дампов всех таблиц из новой версии MySQL и последующей загрузки файла дампов в старую версию MySQL.
Логическое понижение версии поддерживается для понижения между выпусками в рамках одного выпуска и для понижения до предыдущего уровня выпуска. Поддерживаются только понижения между выпусками General Availability (GA). Перед продолжением просмотрите Раздел 2.11.1, «Перед началом».
Для некоторых платформ Linux установка MySQL из RPM или пакетов Debian включает поддержку systemd для управления запуском и остановкой сервера MySQL. На этих платформах mysqld_safe не установлен. В таких случаях используйте systemd для запуска и остановки сервера вместо методов, описанных ниже. См. Раздел 2.5.10, «Управление сервером MySQL с помощью systemd».
Для установок MySQL APT, SLES и Yum репозитория поддерживаются только понижения до предыдущего уровня выпуска. В случаях, когда инструкции требуют инициализации более старой инстанции, используйте утилиту управления пакетами для удаления пакетов MySQL 5.7 и установки пакетов MySQL 5.6.
Для выполнения логического понижения:
Просмотрите информацию в Разделе 2.11.1, «Перед началом».
-
Создайте дамп всех баз данных. Например:
mysqldump -u root -p --add-drop-table --routines --events --all-databases --force > data-for-downgrade.sql
-
Остановите новый сервер MySQL. Например:
mysqladmin -u root -p shutdown
-
Для инициализации инстанции MySQL 5.7 используйте mysqld с параметром
--initializeили--initialize-insecure.mysqld --initialize --user=mysql
-
Запустите старый сервер MySQL, используя новый каталог данных. Например:
mysqld_safe --user=mysql --datadir=
/path/to/new-datadir -
Загрузите файл дампов в старый сервер MySQL. Например:
mysql -u root -p --force < data-for-upgrade.sql
-
Выполните mysql_upgrade. Например:
mysql_upgrade -u root -p
mysql_upgrade проверяет все таблицы во всех базах данных на несовместимости с текущей версией MySQL и пытается восстановить таблицы, если проблемы обнаружены.
-
Остановите и перезапустите сервер MySQL, чтобы убедиться, что все внесенные изменения в системные таблицы вступят в силу. Например:
mysqladmin -u root -p shutdown mysqld_safe --user=mysql --datadir=
/path/to/new-datadir
© 2025 Oracle
Licensed under the GPLv2 License.