Как обновить версию mysql debian

Обновлено: 04.07.2024

Этичный хакинг и тестирование на проникновение, информационная безопасность

Сегодня MySQL 8.0 стала версией доступной для скачивания по умолчанию (предыдущей актуальной версией была MySQL 5.7). Т.е. теперь считается, что это готовая для использования в продакшене версия. Решение проблем, возникавших в процессе обновления, заняло у меня несколько часов – очень надеюсь, что эта заметка поможет вам сэкономить время.

Я обновлял MySQL до версии 8.0 в Windows. Но я вполне допускаю, что аналогичные ошибки будут возникать и в Linux.

Мой веб-сервер и СУБД MySQL установлены по этой инструкции. Если вы устанавливали другим способом, то у вам могут быть другие пути к папкам – учитывайте это.

Бэкап всех баз данных MySQL

Перед тем, как выполнить обновление, обязательно сделайте резервные копии! Файлы баз данных MySQL 5 и MySQL 8 не являются совместимыми в полной мере, и при запуске MySQL 8 происходит автоматическое изменение структуры файлов баз данных. Это означает, что если что-то пойдёт не так и вы захотите просто откатиться до MySQL 5, это может оказаться просто невозможным.

Я делаю бэкапы двумя способами:

  • экспорт всех баз данных в файл;
  • резервная копия файлов, в которых хранятся базы данных.

Экспорт всех баз данных можно сделать прямо в phpMyAdmin, для этого перейдите на главную страницу и выберите вкладку «Экспорт».

Рекомендую НЕ ставить галочку «Добавить выражение DROP DATABASE IF EXISTS», поскольку если файл получится большим, то его придётся импортировать в несколько этапов, а если там будет использоваться конструкция DROP DATABASE IF EXISTS, то при каждом начале импорта будут удаляться ранее принятые записи – т.е. будет невозможно довести операцию до конца.

Можно делать резервные копии и с помощью утилиты mysqldump. Особенности использования mysqldump в Windows:

  • не используйте PowerShell, используйте командную строку (в PowerShell не работает перенаправление вывода, обозначаемого символами > и <), для этого в PowerShell выполните команду
  • перейдите в каталог с программой, например, если она размещена в папке C:\Server\bin\mysql5.7\bin\, для этого выполните
  • файл mysqldump можно запускать без указания расширения файла, но указывайте текущую папку, т.е.:
  • не нужно создавать резервные копии следующих баз данных:
  • information_schema
  • mysql
  • performance_schema
  • sys

Второй вариант – это скопировать в безопасное место папку C:\Server\data\DB\data\. Чтобы это сделать, предварительно остановите MySQL следующей командой:

Само собой, нужно регулярно делать резервные копии, не только перед обновлением СУБД,

Решение ошибки «The server requested authentication method unknown to the client [caching_sha2_password]»

Эта ошибка появится не только при обновлении MySQL, но и при установке. Выглядит она примерно так:

Появляется в phpMyAdmin и в любом скрипте, который обращается к базе данных. Проблема заключается в том, что в настоящее время в PHP не реализовано расширение для работы с методом аутентификации caching_sha2.

Чтобы избежать эту ошибку, в конфигурационный файл my.ini добавьте директиву:

Пример рабочего файла, в котором есть все необходимый настройки для успешного запуска СУБД:

Обновление структуры файлов баз данных при переходе на MySQL 8

Даже после этого, в логах начинают появляться ошибки:

Видимо, с этим же связаны ошибки и предупреждения вроде таких:


Зависание MySQL 8 при обращении к некоторым базам данных

Это оказалось главным вызовом, после обновления с MySQL 5.7, в которой всё работало отлично. Зависания происходили и до, и после запуска mysql_upgrade. Достаточно было обратиться к некоторым базам данных, например, попробовать открыть в phpMyAdmin, либо посетить веб-сайт, который её использует.

Не помогало ничего, MySQL 8 зависала наглухо – служба не перезапускалась, помогала только перезагрузка компьютера, причём до первого обращения к проблемной БД.

Если у вас похожая проблема, и вы ещё не сделали резервную копию в виде .sql для импорта, то откатитесь до MySQL 5. В папку C:\Server\data\DB\data\ восстановите из резервной копии файлы старого формата.

После этого экспортируйте все базы данных в файл .sql. Когда этот файл готов, удалите MySQL 5, удалите содержимое C:\Server\data\DB\data\, установите MySQL 8 и инициализируйте её, как это происходит при первой установке:

После этого восстановите из резервной копии (файл .sql) все базы данных.

При таком способе переноса баз данных, проблема с зависанием полностью исчезла.

Восстановление баз данных из резервной копии без phpMyAdmin в Windows

Для экспорта баз данных, phpMyAdmin работает хорошо. Но с импортом возникло ряд проблем. Ниже я покажу, как разрешить все эти ошибки, но намного проще и в разы быстрее сделать импорт без phpMyAdmin и других помощников на PHP скриптах.

Для этого откройте командную строку Windows. Нажмите комбинацию WIN + x, затем выберите Windows PowerShell. Чтобы выйти из PowerShell и перейти в командную строку, выполните:

Затем смените текущую папку:

И запустите команду вида:

Например, моя резервная копия содержится в файле localhost.sql, который размещён в папке C:\Users\Alex\Downloads\, тогда команда выглядит так:

При попытке импортировать базы данных с помощью phpMyAdmin, у меня всё время возникала ошибка:


Сохраните и закройте файл.

Если я правильно понимаю код, идёт проверка формата файла и если формат не соответствует указанному в списке, то программа останавливает работу. У меня эта проблема была для sql файла, сжатого в zip архив. Возможно, достаточно было добавить в список форматов zip.

Решение проблемы с ошибкой «import.php: Отсутствующий параметр: import_type»

Затем сразу возникла проблема:

максимальный размер загружаемого на сервер файла. Изначально установлен очень маленький размер – только два мегабайта. Например, при загрузке базы данных в phpMyAdmin, не получится загрузить файл больше 2 мегабайт до тех пор, пока не будет изменён этот пункт настройки. Мой бэкап был в сотни мегабайт – установите это значение больше, чем размер импортируемого файла.

устанавливает максимальное количество данных, которые будут приняты при отправке методом POST. Аналогично – установите размер больше, чем импортируемый файл.

Другие директивы можно не менять, но при желании вы можете предоставить PHP скриптам дополнительные ресурсы:

устанавливает максимальное количество памяти, которое может использовать скрипт

максимальное количество файлов для загрузки за один раз

максимальное время выполнения одного скрипта

устанавливает кодировку (по умолчанию, строка закомментирована)

Чтобы эти изменения вступили в силу, нужно перезапустить веб-сервер.

Заключение

Это не все ошибки phpMyAdmin: после решения указанных выше проблем, phpMyAdmin стал жаловаться, что в моём бэкапе неверный формат команд. В общем, импортируйте базы данных напрямую в MySQL. Если баз данных много и они большие, по сравнению с phpMyAdmin, скорость импорта будет в разы быстрее.

Итак, резюмируем, для обновления с MySQL 5.* до MySQL 8.*:

  • делаем резервную копию баз данных
  • после установки MySQL 8 запускаем программу для обновления формата файлов
  • если появились зависания или другие проблемы в работе, останавливаем СУБД, удаляем файлы баз данных, инициализируем MySQL, чтобы были созданы дефолтные файлы и импортируем базы данных из резервной копии

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

Если вы только собираетесь установить веб-сервер на Windows, то подробная инструкция здесь.

Если вам нужен отличный хостинг, то он здесь. Я хостю там сайты с 2009 года и с каждый годом люблю этого хостера больше и больше! Объективно лучший хостинг по показателям аптайма и скорости работы. Если вы хотите зарегистрировать домен в любой существующей доменной зоне – на выбор сотни тематических доменных зон.

Потрясающая отзывчивая и профессиональная служба поддержки и бесплатный перенос сайтов – вливайтесь в клуб любителей Hostland.

Как установить последнюю версию MySQL на Debian 10

MySQL - это система управления базами данных, первая версия которой вышла в 1995 году. Сейчас за разработку и поддержку этой СУБД отвечает компания Oracle. MySQL относится к свободно распространяемому программному обеспечению, то есть ее может использовать любой пользователь и при этом абсолютно бесплатно.

Сейчас MySQL является одной из самых популярных СУБД в мире. Это связано с простотой в использовании, высокой производительностью, безопасностью и многими другими моментами, из-за которых MySQL сейчас используют многие крупные компании.

По умолчанию Debian 10 поставляется вместе с MariaDB - форком от СУБД MySQL, разрабатываемым сообществом под лицензией GNU GPL. В подавляющем большинстве случаев это подходящий вариант, но иногда требуется именно использование MySQL.

Из этой статьи вы узнаете, как установить последнюю версию MySQL на сервер с Debian 10.

Требования

Для выполнения дальнейших действий у вас должен быть создан пользователь с sudo привилегиями (под которым вам нужно авторизоваться), а также должен быть установлен фаервол.

Шаг 1: добавление репозитория MySQL

Первым делом необходимо обновить список пакетов:

Теперь нужно установить пакет gnupg:

После подтверждения утилита apt установит gnupg и все необходимые зависимости.

Следующий шаг - установка пакета .deb. Сначала его нужно будет загрузить, используя команду wget, а затем установить командой dpkg.

Зайдите на страницу загрузки MySQL . В правом нижнем углу найдите кнопку “Download” и нажмите ее. Далее вы можете зарегистрироваться или зайти в уже имеющийся аккаунт Oracle, но главный интерес представляет строчка "No thanks, just start my download”. Скопируйте адрес, на который она ведет (можно нажать правую кнопку мыши и выбрать «Копировать адрес ссылки»).

Теперь нужно загрузить этот файл. Для этого перейдите в директорию, куда вы будете делать загрузку:

А затем введите команду ниже со ссылкой, которую вы скопировали:

Файл должен загрузиться в ту директорию, где вы сейчас находитесь. Можете проверить это, просмотрев список файлов:

В выводе должен быть нужный файл:

А теперь можно перейти к установке:

Команда dpkg используется для того, чтобы устанавливать, удалять и инспектировать пакеты .deb. Ключ -i используется для установки определенного (указанного далее) файла.

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

После окончания процесса еще раз обновите список пакетов:

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

Шаг 2: установка MySQL

Введите команду ниже:

Пакетный менеджер apt запросит подтверждение установки, введите y и нажмите Enter.

Во время процесса установки вам нужно будет задать root-пароль - введите и подтвердите выбор. Далее у вас будет возможность выбрать плагин аутентификации. Прочитайте варианты. Если не знаете, какой выбрать, выбирайте вариант “Use Strong Password Encryption”. После всех необходимых процедур ПО будет установлено и запущено.

Проверить это можно командой systemctl:

Строка Active: active (running) свидетельствует о том, что СУБД MySQL запущена и работает.

Шаг 3: защита MySQL

Для того чтобы выполнить несколько апдейтов, связанных с безопасностью, нужно ввести команду:

Далее вам нужно будет ввести root-пароль и нажать Enter. Следующие несколько вопросов, на которые предстоит ответить (для согласия - “y” и Enter; для того, чтобы пропустить вопрос, - просто Enter):

  • включение плагина валидации паролей: пароли пользователей MySQL будут проверяться на соответствие правилам защищенных, сильных паролей (можно поставить уровень от 0 до 2);
  • изменение root-пароля (т.к. вы буквально недавно его создали, то этот шаг можно пропустить);
  • на все остальные вопросы (удаление анонимных пользователей MySQL, запрет удаленной root-авторизации, удаление тестовой базы данных и т.д.) рекомендуется вводить “y” и нажимать Enter.

Скрипт завершится после того, как вы ответите на все вопросы. Разобравшись с безопасностью, можно переходить к тестированию.

Шаг 4: защита MySQL

mysqladmin представляет собой утилиту командной строки для MySQL. Она позволяет администраторам баз данных выполнять простые задачи вроде установки и изменения паролей, мониторинга процессов и так далее.

Для начала используйте эту утилиту для того, чтобы подключиться к серверу и посмотреть версию:

Часть -u root отвечает за авторизацию в качестве суперпользователя, -p говорит о том, что должен быть запрошен пароль, а version - это сама команда, которую вы хотите выполнить.

В выводе вы можете увидеть, какая версия MySQL работает, аптайм и некоторую другую информацию:

Вся эта информация подтверждает, что вы успешно установили MySQL на свой сервер.

MySQL – это популярная открытая система управления базами данных (СУБД), которая используется для хранения и извлечения данных множества различных приложений. MySQL является одним из компонентов стека LAMP.

В Debian 9 в качестве альтернативы MySQL по умолчанию используется MariaDB, форк проекта MySQL, поддерживаемый сообществом. MariaDB подходит в большинстве случаев, но если вам нужны уникальные функции MySQL Oracle, вы можете установить и использовать пакеты из репозитория, поддерживаемого разработчиками MySQL.

Данный мануал поможет добавить репозиторий MySQL, установить новую версию СУБД, а также защитить и протестировать установку.

Требования

Для работы нужен сервер Debian 9, настроенный по этому мануалу.

1: Добавление репозитория MySQL

Разработчики MySQL предоставляют файл .deb, который отвечает за настройку и установку официальных репозиториев MySQL. Добавив репозиторий, вы сможете установить новую версию MySQL с помощью стандартного пакетного менеджера системы (в данном случае это apt). Загрузите файл .deb с помощью curl и установите его с помощью команды dpkg.

Откройте страницу загрузок сайта MySQL в браузере. Найдите кнопку Download в правом нижнем углу и перейдите на следующую страницу. На этой странице будет предложено войти в систему или зарегистрировать учетную запись веб-сервера Oracle. Этот этап можно пропустить; найдите ссылку No thanks, just start my download. Щелкните правой кнопкой мыши по ссылке и выберите Copy Link Address (или аналогичный вариант, который предложит ваш браузер).

Теперь можно загрузить файл. Откройте каталог tmp. Загрузите файл с помощью команды wget. Вставьте в команду скопированную ссылку на пакет.

Файл будет загружен в текущий каталог. Просмотрите содержимое каталога:

Теперь можно установить полученный файл:

sudo dpkg -i mysql-apt-config*

Команда dpkg используется для установки, удаления и проверки пакетов программного обеспечения .deb. Флаг –i указывает компоненты, которые нужно установить.

Во время установки вам будет представлен экран конфигурации, с помощью которого вы можете указать, какую версию MySQL нужно использовать, и установить репозитории других инструментов, связанных с MySQL. По умолчанию файл добавит информацию только о репозитории последней стабильной версии MySQL. В данном случае этого достаточно; выберите Ok и нажмите Enter.

После этого репозиторий будет добавлен на сервер. Обновите индекс пакетов:

sudo apt update

Репозиторий MySQL добавлен. Теперь с его помощью можно установить последнюю версию MySQL. Чтобы обновить конфигурацию этих репозиториев, просто запустите:

sudo dpkg-reconfigure mysql-apt-config

Затем выберите новые параметры и обновите индекс пакетов:

sudo apt-get update

2: Установка MySQL

Установите новую версию MySQL:

sudo apt install mysql-server

Менеджер apt просмотрит все доступные пакеты mysql-server и выберет наиболее новую версию MySQL. Затем он определит зависимости программы и предложит подтвердить установку. Для этого нажмите y и Enter.

После этого будет предложено установить root-пароль. Выберите и подтвердите надёжный пароль. Программа предложит выбрать плагин аутентификации. Рекомендуем использовать Use Strong Password Encryption (по умолчанию), чтобы выбрать его, нажмите ENTER.

СУБД MySQL будет установлена и запущена. Проверьте состояние MySQL:

Если в выводе есть строка Active: active (running), значит, СУБД успешно установлена и запущена.

3: Безопасность MySQL

MySQL поставляет команду, с помощью которой можно повысить безопасность свежей установки. Запустите её:

Команда запросит root-пароль MySQL. Введите его и нажмите Enter. После этого команда задаст вам ряд вопросов.

Для начала она предложит включить плагин проверки валидности паролей (он автоматически применяет определенные правила защиты паролей пользователей MySQL). Необходимость этого плагина полностью зависит от индивидуальных потребностей сервера. Чтобы включить его, введите y и Enter; чтобы пропустить этот вопрос, просто нажмите Enter. После включения плагина вам будет предложено выбрать уровень строгости проверки пароля (от 0 до 2). Выберите уровень и нажмите Enter, чтобы продолжить.

Затем команда предложит изменить root-пароль. Поскольку это свежая установка и пароль был выбран совсем недавно, вы можете не менять его. Чтобы продолжить, нажмите Enter.

На остальные вопросы можно ответить yes. Команда предложит удалить анонимных пользователей MySQL, запретить удаленный root-доступ, удалить тестовую базу данных и перезагрузить привилегии, чтобы все изменения вступили в силу. Введите y и нажмите Enter в каждом новом окне.

Сценарий завершит свою работу после того как вы ответите на все вопросы.

4: Тестирование установки MySQL

mysqladmin – это клиент командной строки MySQL. Используйте его, чтобы подключиться к серверу и вывести некоторую информацию о версии и состоянии MySQL:

mysqladmin -u root -p version

С помощью -u root клиент mysqladmin подключается как root- пользователь MySQL; флаг –p включает поддержку пароля, а version – это команда, которую нужно запустить.

В выводе вы увидите версию сервера MySQL, время его безотказной работы и некоторую другую информацию о состоянии.

mysqladmin Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 8.0.12
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 6 min 42 sec
Threads: 2 Questions: 12 Slow queries: 0 Opens: 123 Flush tables: 2 Open tables: 99 Queries per second avg: 0.029

Если вы получили такой результат, установка свежей версии MySQL прошла успешно!


Подготовка

Любое обновление сервера баз данных скорее всего связано с перенастройкой базы: изменений требований к лимитам на системные ресурсы и исправлением конфигов базы, которые надо очистить от устаревших директив.

Перед обновлением мы обязательно обратимся к официальной документации:

ВАЖНО! Процедура обновления MySQL-кластера на базе Galera имеет свои тонкости, которые в статье не описаны. Не стоит использовать эту инструкцию в таком случае.

Часть 1: Проверка конфигов

Наш итог — удаление следующих директив:

  • query_cache_type , query_cache_limit и query_cache_size ;
  • innodb_file_format и innodb_file_format_max .


Итог: либо в логах Docker, либо в директории с логами — в зависимости от ваших конфигов — появится файл, в котором будут описаны проблемные директивы.

Вот что было у нас:


Таким образом, нам потребовалось еще разобраться с кодировками и заменить устаревшую директиву expire-logs-days .

Часть 2: Проверка работающих установок

В документации по обновлению есть 2 утилиты для проверки базы на совместимость. Их использование помогает администратору проверить совместимость имеющейся структуры данных.

Начнём с классической утилиты mysqlcheck. Достаточно просто запустить:


Если проблемы не обнаружены, утилита завершится с кодом 0:


Кроме того, в современных версиях MySQL доступна утилита mysql-shell (в случае Percona это пакет percona-mysql-shell ). Она является заменой классическому клиенту mysql и совмещает в себе функции клиента, редактора SQL-кода и инструменты администрирования MySQL. Для проверки сервера перед обновлением можно через неё выполнить следующую команду:


И вот какие замечания мы получили:


В общем, ничего критичного — только предупреждения о кодировках (см. ниже). Общий результат выполнения:


Мы решили, что обновление должно пойти без проблем.

Часть 3: Обновление серверов

Что же может пойти не так, когда есть столь шикарный план. Прекрасно понимая, что нюансы всегда случаются, первый эксперимент мы провели на dev-кластере MySQL.

Как уже упоминалось, официальная документация освещает вопрос обновления MySQL-серверов с репликами. Суть сводится к тому, что сначала стоит обновлять все реплики (slave), так как MySQL 8 умеет реплицироваться с мастера версии 5.7. Некоторая сложность заключается в том, что у нас используется режим master <-> master, когда удалённый мастер находится в режиме read-only. То есть фактически боевой трафик поступает в один ЦОД, а 2-й является резервным.

Топология выглядит следующим образом:


Обновление должно начаться с реплик mysql replica dc 2, mysql master dc 2 и mysql replica dc 1, а закончиться — сервером mysql master dc 1. Для пущей надёжности мы остановили виртуальные машины, сделали их снапшоты, а непосредственно перед обновлением остановили репликацию командой STOP SLAVE . В остальном же обновление выглядит так:

  1. Каждую реплику перезапускаем, добавив в конфиги 3 опции: skip-networking , skip-slave-start , skip-log-bin . Дело в том, что обновление базы генерирует бинарные логи с обновлением системных таблиц. Данные директивы гарантируют, что в базе не будет изменения данных приложения, а в бинарные логи не попадет информация об обновлении системных таблиц. Это позволит избежать проблем при возобновлении репликации.
  2. Устанавливаем пакет percona-server-server . Важно отметить, что в версии MySQL 8 не требуется запускать команду mysqlupgrade после обновления сервера.
  3. После успешного старта еще раз перезапускаем сервер — уже без параметров, которые добавлялись в первом пункте.
  4. Убеждаемся, что репликация успешно работает: проверяем SHOW SLAVE STATUS и смотрим, что обновляются таблицы со счетчиками в базе приложения.

Не было печали — prod мы обновляли

Однако перенос успешного опыта dev на production не обошёлся без сюрпризов.

К счастью, сам процесс обновления начинается с реплик, поэтому, встретив сложности, мы остановили работы и восстановили реплику из снапшота. Исследование проблем перенесли на следующее утро. В логах оказались следующее записи:


Исследование архивов различных почтовых рассылок в Google привело к пониманию, что такая проблема возникает из-за бага MySQL. Хотя скорее это даже баг утилит mysqlcheck и mysqlsh .

Оказывается, в MySQL сменили способ представления данных для десятичных полей (int, tinyint и т.п.), поэтому внутри mysql-server используется другой способ их хранения. Если ваша база данных изначально была в версии 5.5 или 5.1, а затем вы обновлялись до 5.7, то, возможно, требуется произвести OPTIMIZE для некоторых таблиц. Тогда MySQL обновит файлы с данными, переведя их на актуальный формат хранения.

Также это можно проверить утилитой mysqlfrm :


Если field_type у вас равен 0, то в таблице используется старый тип — надо проводить OPTIMIZE . Однако, если стоит значение 246 — у вас уже новый тип. Подробнее с типами можно ознакомиться в коде.

Более того, в данном баге рассматривается вторая возможная причина, которая обошла нас стороной, — это отсутствие InnoDB-таблиц в системной таблице INNODB_SYS_TABLESPACES , если они, таблицы, создавались в версии 5.1. Чтобы избежать проблем при обновлении, можно воспользоваться приложенным SQL-скриптом.

Почему же у нас не возникло таких проблем на dev? База туда периодически копируется с production — таким образом, таблицы пересоздаются.

К сожалению, на реально работающей большой БД не получится просто взять и выполнить повсеместный OPTIMIZE . Здесь поможет percona-toolkit: для операции online OPTIMIZE отлично подходит утилита pt-online-schema-change.

Обновленный план стал получился таким:

  1. Провести оптимизацию всех таблиц.
  2. Провести обновление баз данных.


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

Чтобы этого избежать, на production мы добавили к команде аргумент --sleep со значением 10 — этот параметр регулирует длину ожидания после переноса пачки данных в новую таблицу. Так можно снизить нагрузку, если реально запущенное приложение требовательно к времени ответа.

После выполнения оптимизации обновление прошло успешно.

… но не до конца!

Уже через полчаса после обновления клиент пришел с проблемой. База работала очень странно: периодически начинались сбросы подключений. Вот как это выглядело в мониторинге:


На скриншоте виден пилообразный график, связанный с тем, что часть потоков MySQL-сервера периодически падали с ошибкой. В приложении появились ошибки:


Беглый осмотр логов выявил, что демон mysqld не мог получить требуемые ресурсы у операционной системы. Разбираясь с ошибками, мы обнаружили в системе «бесхозные» файлы политик apparmor:


Эти файлы образовались при обновлении на MySQL 5.7 пару лет назад и принадлежат удалённому пакету. Удаление файлов и перезапуск службы apparmor решил проблему:

В заключение

Любая, даже самая простая операция, может привести к неожиданным проблемам. И даже наличие продуманного плана не всегда гарантирует ожидаемый результат. Теперь в любые планы обновления у нашей команды входит еще и обязательная чистка лишних файлов, которые могли появиться в результате последих действий.

А этим не очень профессиональным графическим творчеством я бы хотел сказать огромное спасибо компании Percona за их отличные продукты!

После выдачи сервера с Ubuntu 18.04, по умолчанию MySQL будет установлен версии 5.7.30, если вам необходимо повысить версию, проделайте следующие шаги:

Начало установки MySQL 8.0.20

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

Вводим команду, которая извлечет новые версии пакетов, существующих на сервере:

Скачиваем файл с помощью wget:

Для проверки, что файл скачался, наберите:

Далее, распакуем и установим его:

Далее, появится окно, в котором надо проверить, что стоит MySQL Server & Cluster (Currently selected: mysql-8.0).

file

file

Дальше вводим следующие команды:

Установим MySQL server:

Откроется окно, в котором нужно ввести новый пароль root для MySQL (пароль от Ubuntu и от MySQL могут быть разные):

file

Далее нажмем Ok

В окне, где указано про новую аутификацию MySQL 8 - жмем Use Strong Password Encryption (Recommended)

file

Далее введем команду:

Вводим пароль для MySQL.

Дальше на вопросы безопасности можно ответить следующим образом:

Для проверки, что MySQL работает, введем:

Вводим команду, чтобы проверить, что MySQL 8.0 установлен, а не MySQL5.*:

Версия MySQL повышена до версии 8.0.20

Если вы уже пытались установить MySQL и на каком-то этапе у вас произошла ошибка, то выполните данные команды, чтобы начать процесс заново:

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

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