MySQL 8.0 Community Edition — это надежная, прочная и безопасная РСУБД, обладающая значительными улучшениями по сравнению со своими предшественниками. Если вы являетесь администратором базы данных, разработчиком или просто интересуетесь вопросами управления базами данных, MySQL 8.0 предлагает функции, отвечающие различным потребностям управления данными.
Если вы хотите установить MySQL 8.0 на Ubuntu 22.04 Jammy Jellyfish LTS или ее более старый стабильный релиз Ubuntu 20.04 Focal Fossa LTS, то вы попали по адресу. MySQL 8.0 Community Edition — это ведущая система управления реляционными базами данных (РСУБД) с открытым исходным кодом, которая предлагает ряд функций, предназначенных для оптимального управления данными.
Основные возможности и улучшения в MySQL 8.0
- Повышенная производительность: В MySQL 8.0 реализованы такие оптимизации производительности, как невидимые индексы и улучшенные хэш-соединения, позволяющие ускорить обработку и поиск данных.
- Повышенная безопасность: Благодаря таким функциям, как расширенное шифрование паролей и роли SQL, в MySQL 8.0 большое внимание уделяется безопасности данных.
- Поддержка ГИС: Полная поддержка географических информационных систем (ГИС), включая пространственные индексы на InnoDB, открывает новые возможности для управления географическими данными.
- Словарь данных: Транзакционный словарь данных обеспечивает единую систему работы с метаданными, делая управление данными более согласованным.
- Расширенная поддержка JSON: Улучшенные функции JSON упрощают управление сложными структурами данных JSON.
В данном руководстве приведены пошаговые инструкции по установке MySQL 8.0 на Ubuntu 22.04 Jammy Jellyfish LTS или Ubuntu 20.04 Focal Fossa LTS. Мы рассмотрим два метода установки с использованием менеджера пакетов APT: один из них — с использованием стандартного репозитория Ubuntu, а другой — с использованием официального репозитория APT от MySQL.
Раздел 1: Установка MySQL 8.0 на Ubuntu 22.04 или 20.04
Обновление системных пакетов перед установкой MySQL 8.0
Прежде чем приступить к процессу установки, всегда полезно обновить систему. Этот процесс гарантирует, что все существующие пакеты актуальны, что минимизирует вероятность возникновения конфликтов во время установки MySQL 8.0.
Выполните следующие команды для обновления и модернизации системы:
sudo apt update
sudo apt upgrade
Выбор способа установки MySQL 8.0 APT на Ubuntu 22.04 или 20.04
Существует два способа установки MySQL 8.0 на систему Ubuntu. Вы можете воспользоваться репозиторием Ubuntu по умолчанию или импортировать официальный APT-репозиторий MySQL.
Метод 1: Установка MySQL 8.0 из репозитория Ubuntu
Этот способ рекомендуется использовать, если вы ищете метод, в котором приоритет отдается стабильности системы. Установка MySQL из стандартного репозитория Ubuntu гарантирует стабильную и тщательно протестированную версию MySQL 8.0.
Чтобы установить MySQL этим способом, выполните следующую команду:
sudo apt install mysql-server
Метод 2: Установка MySQL 8.0 с помощью репозитория MySQL APT Repository на Ubuntu 22.04 или 20.04
Этот способ подходит тем, кто хочет получить последнюю стабильную версию MySQL 8.0 непосредственно из репозитория MySQL. Такой подход может предложить быстрые улучшения, особенно выгодные в зависимости от системных требований.
Установка необходимых пакетов для MySQL на Ubuntu:
Прежде чем приступить к реализации этого метода, необходимо установить несколько необходимых пакетов. Эти пакеты обычно присутствуют в большинстве систем Ubuntu. Однако, чтобы подстраховаться, выполните следующую команду, чтобы убедиться, что они установлены:
sudo apt install dirmngr ca-certificates software-properties-common apt-transport-https curl lsb-release -y
Импорт репозитория MySQL 8.0 Community Server Repository на Ubuntu 22.04 или 20.04:
Чтобы установить MySQL из официального репозитория, импортируйте его GPG-ключ и репозиторий в систему. Вот как это делается:
Импортируйте GPG-ключ:
curl -fsSL http://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | sudo gpg --dearmor | sudo tee /usr/share/keyrings/mysql.gpg > /dev/null
Затем импортируйте репозиторий MySQL 8.0:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-8.0" | sudo tee -a /etc/apt/sources.list.d/mysql.list
Если вы являетесь разработчиком или у вас есть специфические требования, вы можете дополнительно импортировать репозиторий исходных текстов MySQL:
echo "deb-src [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-8.0" | sudo tee -a /etc/apt/sources.list.d/mysql.list
Разработчики также могут импортировать репозиторий инструментов MySQL следующим образом:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-tools" | sudo tee -a /etc/apt/sources.list.d/mysql.list
echo "deb-src [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-tools" | sudo tee -a /etc/apt/sources.list.d/mysql.list
После добавления репозиториев можно проверить изменения, выполнив эту команду:
grep mysql /etc/apt/sources.list.d/mysql.list
Пример вывода:
joshua@ubuntu-linux:~$ grep mysql /etc/apt/sources.list.d/mysql.list
deb [arch=amd64 signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu jammy mysql-8.0
deb-src [arch=amd64 signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu jammy mysql-8.0
deb [arch=amd64 signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu jammy mysql-tools
deb-src [arch=amd64 signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu jammy mysql-tools
Обновление кэша APT после импорта MySQL 8.0:
После успешного импорта APT-репозитория MySQL пришло время обновить кэш Advanced Package Tool (APT), чтобы он распознал новый репозиторий.
Выполните следующую команду для обновления кэша APT:
sudo apt update
Установка MySQL 8.0 Community Edition Server на Ubuntu 22.04 или 20.04:
Теперь, когда все предварительные условия выполнены, мы готовы к установке MySQL 8.0 Community Edition Server. Для начала установки выполните следующую команду:
sudo apt install mysql-community-server
В процессе установки вам будет предложено задать пароль для пользователя MySQL root. Убедитесь в надежности этого пароля и запишите его для дальнейшего использования. После подтверждения пароля вам будет предложено выбрать плагин аутентификации по умолчанию. Если вы сомневаетесь, выберите «Use Strong Password Encryption», рекомендованный MySQL.
Для подтверждения установки проверьте версию установленного MySQL с помощью следующей команды:
apt policy mysql-community-server
Раздел 2: Сервисные команды для MySQL 8.0 Community Server
При установке сервера MySQL 8.0 Community Edition система автоматически активизирует службу MySQL и переводит ее в режим автозапуска при загрузке системы. Понимание некоторых основных команд управления службами необходимо для эффективной работы сервера баз данных.
После установки одной из первых задач является проверка работоспособности службы MySQL. С помощью команды systemctl, специально предназначенной для взаимодействия со службами systemd, можно посмотреть текущее состояние службы MySQL. Выполните следующую команду:
systemctl status mysql
При успешном выполнении операции сообщение о состоянии должно указывать на то, что служба активна и работает без проблем.
Понимание того, как управлять службой MySQL, очень важно для обслуживания сервера баз данных. Различные команды systemctl позволяют напрямую взаимодействовать со службой MySQL. Ниже приведен обзор некоторых важных команд:
Остановка службы MySQL
Чтобы остановить работу службы MySQL в любой момент времени, используйте следующую команду:
sudo systemctl stop mysqld
Запуск службы MySQL
Если служба MySQL не работает или была остановлена, запустите ее с помощью следующей команды:
sudo systemctl start mysqld
Отключение службы MySQL при загрузке системы
Возможны ситуации, когда вы предпочитаете, чтобы служба MySQL не запускалась автоматически при загрузке системы. Чтобы отключить автозапуск, выполните следующую команду:
sudo systemctl disable mysqld
Включение службы MySQL при загрузке системы
Чтобы отменить вышеописанное действие и установить автоматический запуск службы MySQL при загрузке системы, выполните следующую команду:
sudo systemctl enable mysqld
Перезапуск службы MySQL
Если необходимо перезапустить службу MySQL — например, после внесения изменений в конфигурацию, — используйте следующую команду:
sudo systemctl restart mysqld
Раздел 3: Защита MySQL 8.0 на Ubuntu 22.04 или 20.04
При установке MySQL определенные настройки по умолчанию могут не соответствовать всем стандартам безопасности, что потенциально может сделать вашу базу данных уязвимой для вторжений или эксплуатации. Важным шагом после установки является усиление безопасности экземпляра MySQL. MySQL предоставляет скрипт безопасности mysql_secure_installation, который помогает усилить защиту базы данных.
Запуск скрипта безопасности MySQL на Ubuntu
Сценарий mysql_secure_installation является частью пакета MySQL, повышающего уровень безопасности. Запустите скрипт, выполнив следующую команду:
sudo mysql_secure_installation
Взаимодействие со сценарием безопасности на Ubuntu
После выполнения команды скрипт предложит ввести пароль root, изначально заданный при установке MySQL.
Появится подсказка, касающаяся параметра VALIDATE PASSWORD COMPONENT, который позволяет применять политику надежности паролей. Как правило, достаточно настроек по умолчанию.
Далее сценарий выполняет ряд шагов:
-
Настройка паролей для корневых учетных записей
Здесь у вас есть возможность сбросить пароль root. Однако если он уже был задан при первоначальной установке, то этот шаг можно пропустить. Сценарий требует ввести новый пароль дважды для проверки.
New password: <---- SET NEW PASSWORD
Re-enter new password: <---- RE-ENTER NEW PASSWORD
-
Удаление анонимных пользователей
По умолчанию MySQL включает в себя учетную запись анонимного пользователя. Эта учетная запись позволяет любому пользователю войти в MySQL, не имея аутентифицированной учетной записи, что может представлять значительный риск для безопасности. Сценарий предлагает вам удалить эти анонимные учетные записи:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
-
Запрет удаленного входа пользователя root
Согласно стандартному протоколу безопасности, пользователю root должно быть разрешено подключаться только с ‘localhost’. Этот протокол гарантирует, что удаленные попытки угадать пароль root будут сведены к минимуму. Сценарий запрашивает подтверждение отключения удаленного входа root:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
-
Удаление тестовой базы данных
По умолчанию установка MySQL включает в себя «тестовую» базу данных. Эта база данных доступна всем желающим и предназначена только для тестирования. Перед переносом установки в производственную среду очень важно удалить тестовую базу данных и получить к ней доступ:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
-
Перезагрузка таблиц привилегий
Перезагрузка таблиц привилегий позволяет немедленно ввести в действие все сделанные до этого изменения:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y <---- Type Y then press the ENTER KEY.
Выполнив эти шаги и подтвердив изменения в системе безопасности, вы повышаете безопасность установки сервера MySQL и снижаете риск потенциальных эксплойтов.
Раздел 4: Управление MySQL 8.0 на Ubuntu 22.04 или 20.04
Управление сервером MySQL включает в себя несколько рутинных задач, таких как обновление, модернизация и, при необходимости, деинсталляция. Ubuntu Linux предоставляет эффективные утилиты командной строки для выполнения этих задач, что позволяет поддерживать сервер MySQL в актуальном и безопасном состоянии.
Обновление MySQL 8.0 Community Server
Регулярные обновления необходимы для поддержания бесперебойной работы сервера MySQL. Эти обновления часто содержат исправления ошибок, патчи безопасности и новые возможности, что позволяет повысить общую безопасность и функциональность сервера.
Поскольку вы добавили в свою систему официальный репозиторий MySQL APT, обновление MySQL не составит труда. Следующая команда представляет собой комбинацию двух отдельных команд, sudo apt update и sudo apt upgrade.
sudo apt update && sudo apt upgrade
Команда sudo apt update получает информацию о том, какие пакеты могут быть обновлены, включая MySQL, если обновление доступно. С другой стороны, команда sudo apt upgrade обновляет собственно пакеты.
Удаление MySQL 8.0 из Ubuntu 22.04 или 20.04
Бывают случаи, когда сервер MySQL на системе Ubuntu больше не нужен. Процесс деинсталляции включает в себя остановку службы MySQL и удаление программного обеспечения и связанных с ним зависимостей.
Остановка службы MySQL на Ubuntu
Перед деинсталляцией убедитесь, что служба MySQL не запущена. Для немедленной остановки службы используйте следующую команду:
sudo systemctl stop mysql --now
Удаление MySQL и его зависимостей из Ubuntu
Теперь можно удалить сервер MySQL и все связанные с ним пакеты, которые больше не нужны. Для этого достаточно эффективно использовать команду sudo apt autoremove:
sudo apt autoremove mysql-community-server
В качестве альтернативы используйте следующую команду, если вы используете версию Ubuntu:
sudo apt autoremove mysql-server
Эта команда удаляет сервер MySQL и очищает неиспользуемые пакеты или зависимости, освобождая системные ресурсы.
Удаление репозитория MySQL 8.0 из Ubuntu 22.04 или 20.04
Если вы больше не собираетесь использовать MySQL и ранее импортировали репозиторий MySQL 8.0 Community Repository, удаление репозитория из системы является хорошей практикой. С помощью следующей команды удалите файл списка MySQL из каталога sources.list.d:
sudo rm /etc/apt/sources.list.d/mysql.list
Этот шаг гарантирует, что система не будет пытаться проверить репозиторий MySQL на наличие обновлений во время общесистемного обновления, тем самым сохраняя упорядоченность источников APT.
Заключение
Установка, настройка и управление MySQL 8.0 на Ubuntu Linux — это важный навык для любого администратора баз данных, разработчика или технического энтузиаста. Мы рассмотрели широкий спектр вопросов, начиная с настройки и запуска службы и заканчивая обеспечением безопасности установки MySQL, обновлением и деинсталляцией при необходимости. Каждый шаг имеет решающее значение для поддержания эффективного, безопасного и современного сервера MySQL на вашей системе Ubuntu.