Spec-Zone.ru › MySQL 5.7

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».

Для выполнения понижения версии на месте:

  1. Просмотрите информацию в Разделе 2.11.1, «Перед началом».

  2. Если вы используете XA-транзакции с InnoDB, выполните XA RECOVER перед понижением, чтобы проверить наличие незавершенных XA-транзакций. Если возвращаются результаты, либо подтвердите, либо откатайте XA-транзакции, выполнив оператор XA COMMIT или XA ROLLBACK.

  3. Настройте MySQL для выполнения медленной остановки, установив innodb_fast_shutdown на 0. Например:

    mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"
    

    При медленной остановке InnoDB выполняет полную очистку и слияние буфера изменений перед остановкой, что гарантирует полную подготовку файлов данных в случае различий в формате файлов между выпусками.

  4. Остановите новый сервер MySQL. Например:

    mysqladmin -u root -p shutdown
    
  5. После медленной остановки удалите файлы журнала перегенерации InnoDB (файлы ib_logfile*) из каталога data, чтобы избежать проблем при понижении версии, связанных с изменениями формата файлов журнала перегенерации, которые могли произойти между выпусками.

    rm ib_logfile*
    
  6. Понизьте версию бинарных файлов или пакетов MySQL «на месте», заменив новые бинарные файлы или пакеты старыми.

  7. Запустите старый (пониженный) сервер MySQL, используя существующий каталог данных. Например:

    mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
    
  8. Выполните mysql_upgrade. Например:

    mysql_upgrade -u root -p
    

    mysql_upgrade проверяет все таблицы во всех базах данных на несовместимости с текущей версией MySQL и пытается восстановить таблицы, если проблемы обнаружены.

  9. Остановите и перезапустите сервер 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.

Для выполнения логического понижения:

  1. Просмотрите информацию в Разделе 2.11.1, «Перед началом».

  2. Создайте дамп всех баз данных. Например:

    mysqldump -u root -p
      --add-drop-table --routines --events
      --all-databases --force > data-for-downgrade.sql
    
  3. Остановите новый сервер MySQL. Например:

    mysqladmin -u root -p shutdown
    
  4. Для инициализации инстанции MySQL 5.7 используйте mysqld с параметром --initialize или --initialize-insecure.

    mysqld --initialize --user=mysql
    
  5. Запустите старый сервер MySQL, используя новый каталог данных. Например:

    mysqld_safe --user=mysql --datadir=/path/to/new-datadir
    
  6. Загрузите файл дампов в старый сервер MySQL. Например:

    mysql -u root -p --force < data-for-upgrade.sql
    
  7. Выполните mysql_upgrade. Например:

    mysql_upgrade -u root -p
    

    mysql_upgrade проверяет все таблицы во всех базах данных на несовместимости с текущей версией MySQL и пытается восстановить таблицы, если проблемы обнаружены.

  8. Остановите и перезапустите сервер MySQL, чтобы убедиться, что все внесенные изменения в системные таблицы вступят в силу. Например:

    mysqladmin -u root -p shutdown
    mysqld_safe --user=mysql --datadir=/path/to/new-datadir
    

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/downgrade-binary-package.html

Spec-Zone.ru

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