Mariadb как обновить debian

Обновлено: 03.07.2024

This page is part of MariaDB's Enterprise Documentation.

The parent of this page is: Upgrades

Topics on this page:

Overview

These instructions detail the upgrade from a previous version of MariaDB Community Server to MariaDB Community Server 10.5 on Debian 9.

When MariaDB Community Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.

Data Backup

Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.

The instructions below show how to perform a backup using MariaDB Backup . For more information about backing up and restoring the database, please see the Recovery Guide .

Take a full backup:

Confirm successful completion of the backup operation.

The backup must be prepared:

Confirm successful completion of the prepare operation.

Backups should be tested before they are trusted.

Uninstall the Old Version

When upgrading to a new major release of MariaDB Community Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing the new version of MariaDB Community Server. Otherwise, the package manager will refuse to install the new version of MariaDB Community Server.

Stop the MariaDB Server Process

Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.

Set the innodb_fast_shutdown system variable to 1 :

Use XA RECOVER to confirm that there are no external XA transactions in a prepared state:

Commit or rollback any open XA transactions before stopping the node for upgrade.

Stop the server process using the systemctl command:

Uninstall via APT (Debian/Ubuntu)

Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled.

Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.

Uninstall the Galera package as well.

The name of the package depends on the specific version of MariaDB Community Server.

When upgrading from MariaDB Community Server 10.4, the package is called galera-4 :

When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3 :

Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:

This page is part of MariaDB's Enterprise Documentation.

The parent of this page is: Upgrades

Topics on this page:

Overview

These instructions detail the upgrade from a previous version of MariaDB Community Server to MariaDB Community Server 10.5 on Debian 10.

When MariaDB Community Server is upgraded, the old version needs to be uninstalled, and the new version needs to be installed.

Data Backup

Occasionally, issues can be encountered during upgrades. These issues can even potentially corrupt the database's data files, preventing you from easily reverting to the old installation. Therefore, it is generally best to perform a backup prior to upgrading. If an issue is encountered during the upgrade, you can use the backup to restore your MariaDB Server database to the old version. If the upgrade finishes without issue, then the backup can be deleted.

The instructions below show how to perform a backup using MariaDB Backup . For more information about backing up and restoring the database, please see the Recovery Guide .

Take a full backup:

Confirm successful completion of the backup operation.

The backup must be prepared:

Confirm successful completion of the prepare operation.

Backups should be tested before they are trusted.

Uninstall the Old Version

When upgrading to a new major release of MariaDB Community Server, it is necessary to remove the existing installation of MariaDB Community Server, before installing the new version of MariaDB Community Server. Otherwise, the package manager will refuse to install the new version of MariaDB Community Server.

Stop the MariaDB Server Process

Before the old version can be uninstalled, we first need to stop the current MariaDB Server process.

Set the innodb_fast_shutdown system variable to 1 :

Use XA RECOVER to confirm that there are no external XA transactions in a prepared state:

Commit or rollback any open XA transactions before stopping the node for upgrade.

Stop the server process using the systemctl command:

Uninstall via APT (Debian/Ubuntu)

Uninstall all of the MariaDB Community Server packages. Note that a wildcard character is used to ensure that all MariaDB Community Server packages are uninstalled.

Be sure to check that this wildcard does not unintentionally refer to any of your custom applications.

Uninstall the Galera package as well.

The name of the package depends on the specific version of MariaDB Community Server.

When upgrading from MariaDB Community Server 10.4, the package is called galera-4 :

When upgrading from MariaDB Community Server 10.3 or earlier, the package is called galera-3 :

Before proceeding, verify that all MariaDB Community Server packages are uninstalled. The following command should not return any results:

Два года назад я опубликовал цикл статей на тему создания веб-сервера на базе Debian 8 и запуске на нём сервиса Nextcloud 11. Через несколько месяцев появилось дополнение, содержащее «диффиренциальную» информацию по установке Nextcloud 13 на Debian 9. В конце 2018 года я просто обновил Debian и Nextcloud и не столкнулся с какими-то необычными или интересными проблемами. Обновление в конце 2019 года было уже более интересным и про это стоило написать.


Данная статья в первую очередь будет полезна тем, кто по инструкциям прошлых четырёх статей «собрал» себе Nextcloud 13 на Debian 9 (передаю привет с десятку моих подписчиков по теме Nextcloud, в особенности тем, для кого это был первый опыт в мире Linux). Тем, кто соберётся делать сервис с нуля я советую взять за основу первые четыре статьи этого цикла с поправкой на актуальные версии Debian 10 и Nextcloud 17. Для опытных пользователей Linux статья может занять какое-то место между «тривиальна и бесполезна» и «неплохо, шпаргалка всё-в-одном-месте».


Оглавление

Быстрая навигация по главе

Предисловие

Изначально хотелось на Debian 10 установить и настроить Nginx, поверх чего без проблем бы установился актуальный Nextcloud 17. Но для всего этого у меня не получилось выбрать время, поэтому эта статья представляет из себя набор инструкций по обновлению Nextcloud с 13 до актуальной версии 17 с предварительной подготовкой веб-сервера.

Для начала нужно пояснить зачем потребовались радикальные изменения на стороне веб-сервера. Наш сервер основан на актуальном и поддерживаемом Debian 9. Можно просто обновить операционную систему и все компоненты веб-сервера получат как минимум обновления безопасности. Всё было бы замечательно если бы мы дальше использовали Nextcloud 13 или обновились только до версии 14. Но Nextcloud 13 уже не поддерживается, а поддержка 14-ой версии «на излёте». Начиная с 15-ой версии Nexctcloud будет предлагать преобразовать базу данных в big int для поддержки четырёхбайтовой кодировки и с MariaDB 10.1 сделать это будет весьма проблематично. Nexctcloud 17 требует PHP 7.1-7.3, в то время как Debian 9 в своих родных репозиториях содержит только версию 7.0. Правильнее, в плане надежности и предсказуемости, было бы обновиться до предпоследней версии Nextcloud, но за пару лет я настолько уверился в надёжности этого сервиса, что мне хотелось обновиться до последней версии и обновить веб-сервер с заделом на будущее. Поэтому, для обновления до Nexctcloud 17 оптимально обновить MariaDB до актуальной стабильной версии 10.4, а PHP — до 7.2. Именно 7.2, а не актуальной 7.4. Дело в том, что Nextcloud 13 требует PHP 5.6, 7.0 — 7.2, а для Nexctcloud 17 требуется PHP 7.1 — 7.3. Использовать PHP 7.2 удобно с целью минимизации действий по обновлению. Сервер Apache обновлять не потребуется — достаточно установить обновления безопасности, которые распространяет команда поддержки Debian. А вот для обновлений MariaDB и PHP придётся подключать внешние репозитории.

Когда я только знакомился с Nextcloud я обновлял его «руками»: из консоли специальной командой сайт переводился в режим обслуживания, вручную скачивался и распаковывался архив с новой версией сайта, обновлялись файлы и запускалась процедура обновления. Такое обновление обычно приводило к ожидаемым результатам, хотя я не ленился делать резервную копию сайта, базы и пользовательских данных. А вот автоматическое обновление порой приводило к всяким сюрпризам. Но это было давно, стабильность движка с тех пор сильно возросла и на этот раз я делал обновления исключительно через веб-интерфес. Правда от командной строки отвертеться всё равно не удалось. При итерационном обновлении на каждую новую версию в панели управления будут появляться различные предупреждения и уведомления, которые необходимо будет «убирать», осмысленно выполняя команды в командной строке. Можно этого и не делать — сервис работать всё равно будет. Хотя такой подход в корне неправильный, у меня Nextcloud отработал в таком режиме 3 месяца прежде чем я целенаправленно разобрался с возникшими вопросами.

Обновление Debain


После обновления можно проверить версию ОС и сделать контрольную перезагрузку, чтобы убедиться в том, что после обновления всё нормально стартует:

Обновление PHP до версии 7.2


Добавляем сертификат и ключи PPA, репозиторий PHP:


При удалении старой версии PHP 7.0 так же удалится phpmyadmin, так как «следы» от удалённых пакетов мы зачистим используя autoremove. Это не доставит особых сложностей, так как никаких специальных настроек для phpmyadmin не делалось и установить его снова не составит никаких проблем.


Установка модулей необходимых для Nextcloud 17:

Проверяем версию PHP, запускаем веб-сервер и проверяем работоспособность Nextcloud:

Обновление MariaDB до версии 10.4

На сайте проекта есть интересная страничка, на которой нужно указать свою ОС, её релиз и выбрать версию базы данных. После выбора сгенерируется код для добавления репозитория.


Добавляем репозиторий и обновляем пакеты:


При установке MariaDB пакетный менеджер корректно удалит предыдущую версию и установит новую, все базы данных при этом сохранятся. Однако сделать резервную копию базы Nextcloud конечно же рекомендуется.

Устанавливаем MariaDB и запускаем процедуру обновления:


После ввода пароля MariaDB обновится и можно будет её сконфигурировать, следуя инструкциям из второй части:


Запускаем веб-сервер и проверяем работоспособность Nextcloud:

Обновление Nextcloud до версии 17

Для запуска обновления нужно авторизоваться на сервисе под административной записью, проследовать в настройки и открыть «Общие настройки» в административном разделе. Nextcloud показывает установленную версию и версию доступную для обновления, которое можно запустить нажав кнопку «Открыть окно обновления». После инициации Nextcloud делает резервную копию, скачивает и проверяет целостность файлов обновления, включает режим обслуживания и обновляет файлы. Далее следует вопрос «Keep maintenance mode active»? Здесь нужно быть внимательным. Положительный ответ оставит сайт в режиме обслуживания — предполагается, что администратор знает что дальше делать и сделает это вручную. В противном случае Nextcloud сделает всё сам, поэтому для продолжения нажимаем кнопку «No».

Обновления выполняются итерационно. Сначала Nextcloud 13.x обновится до крайней версии ветки 14.x. После этого нужно будет снова зайти в админцентр и запустить обновление, теперь уже с 14.х до 15.x. И так далее пока не будет достигнута последня возможная актуальная версия. После каждого обновления на странице «Общие настройки» в административном разделе будет выведен список предложений и возникших проблем, а так же рекомендаций по их решению. Ниже пойдёт речь о том, что нужно будет сделать после каждого обновления.

До обновления

На последних версиях Nextcloud рекомендуется включить PHP OPcache для улучшения производительности. Странно, что этот момент я как-то упустил пару лет назад, так как OPcache появился ещё в PHP 5. В /etc/php/7.2/apache2/php.ini нужно раскомментировать и отредактировать следующие параметры:


Обновление 13.x -> 14.x

Восстанавливаем индексы таблиц:


Обновление 14.x -> 15.x

Подготавливаем базу данных nextcloud для включения четырёхбайтовой кодировки:


Включаем поддержку четырёхбайтовой кодировки в Nextcloud:


Восстановливаем потерянные индексы таблиц:


Преобразовываем индексы таблиц в bigint:


Обновление 15.x -> 16.x

Восстановливаем потерянные индексы таблиц:


Преобразовываем индексы таблиц в bigint:


Обновление 16.x -> 17.x

Никаких дополнительных действий не требуется.

Послесловие

По данной инструкции была обновлена виртуальная машина с Nextcloud 13. Использование виртуальной машины позволяет не делать резервных копий файлов Nextcloud и его базы данных, так как в случае проблем можно просто вернуть заранее сохранённый файл виртуальной машины и начать всё сначала. Однако это не касается папки с пользовательскими данными, которую я рекомендую так же забэкапить вместе с виртуальной машиной с Nextcloud. В моём случае «облако» используется в качестве удалённой папки с автоматической версионностью, причём с направлением синхронизации «только туда», и мне потрея этих данных была некритична — пришлось бы просто несколько часов опять делать синхронизацию. Несмотря на моё пренебрежение выработанным жизнью правилом «сохранись на всякий случай», обновление прошло без проблем и все клиенты так же без проблем заработали с Nextcloud 17. Я впечатлён, Фрэнк Карлитшек — Вы со своей командой делаете отличную работу!

После обновления я решил почистить пользовательские данные, которые, судя по статистике, занимали под два терабайта. Столько оперативных данных у меня не было — большинство объёма занимали файлы версий и удалённые файлы. Проблема с которой я столкнулся заключалась в том, что для одного пользователя удалённых данных было настолько много (дело даже не в объёме, а именно в количестве — очень много мелких файлов), что Nextcloud не мог их отобразить в веб-интерфейсе. После изучения руководства по администрированию я нашёл решение через командную строку. Возможно кому-то это пригодится.

Для очистки удалённых файлов пользователя user:


Для очистки файлов версий пользователя user:


История создания домашнего облака. Часть 5. Актуализация 2019 – PHP 7.2, MariaDB 10.4 и Nextcloud 17
Версия текста: 1.1.1.
Дата первой публикации: 15.01.2020.
Дата последней правки: 15.01.2020.

1.1.1 [15-01-2020]
Исправление опечаток.

1.1.0 [15-01-2020]
Исправлен код подготовки базы данных nexcloud для включения четырёхбайтовой кодировки.

После команды apt-get install mariadb-server -y
Получаю ошибку:

Не могу понять из-за чего не дает обновиться БД.

  • Вопрос задан более двух лет назад
  • 2351 просмотр

VELIK505

VELIK505

VELIK505

VELIK505

Максим Компаниец,
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update
sudo apt-get install mariadb-server mariadb-client

VELIK505

Максим Компаниец, через удаление придёться ставить. Бэкап бд сделай если есть.
sudo apt-get autoremove maria*
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get update
sudo apt-get mariadb-server mariadb-client

Андрей, извиняюсь за долгий ответ, совсем другими делами пришлось заняться и вот только сегодня вернулся к обновлению БД. Выполнил все команды, кроме последней. Вместо последней пришлось выполнить:
sudo apt install mariadb-server
Не нашел информацию для чего нужен mariadb-client, если не сложно, объясните в двух словах, если это возможно.

Комманда sudo systemctl status mariadb выводит эту информацию:

К базе подключиться могу, даже данные никакие не удалились, что странно. Я уже настроился на восстановление таблиц и прочего

а по команде sudo mysqladmin version теперь такая проблема:

До переустановки выводило информацию нормально. Даже не знаю, нужно исправлять или нет.. К базе подключается нормально, все сайты работаеют, вроде ничего не сбилось

Читайте также: