Инструкция по установке MySQL 8 на Debian 11. После установки уделим немного внимания настройкам безопасности и переместим базу в другую директорию.
Данные об операционной системе:
Distributor ID: Debian Description: Debian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye
Установка репозитория MySQL 8
Предварительно нужно установить пакет gnupg. Если не устанавливали, то:
apt-get install gnupg
Установим MySQL APT репозиторий, переходим на страничку:
https://dev.mysql.com/downloads/
Нас интересует раздел MySQL APT Repository, переходим в него.
Последний пакет называется mysql-apt-config_0.8.20-1_all.deb, копируем ссылку на него. Загрузим пакет:
cd /tmp
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.20-1_all.deb
ls -fla | grep mysql
Установим пакет:
dpkg -i mysql-apt-config_0.8.20-1_all.deb
Версия сервера MySQL mysql-8.0 выбрана автоматически. MySQL Tools & Connectors — Enabled. MySQL Preview Packages — Disabled. Нажимаем OK.
После установки пакета в /etc/apt/source.list.d/ добавится mysql.list.
Обновляем репозиторий:
apt-get update
Установка MySQL 8
Установим MySQL сервер.
apt-get install mysql-server
В процессе установки нас просят установить пароль пользователя root для MySQL.
Повторяем ввод пароля.
Выбираем плагин аутентификации по умолчанию. Рекомендуется Strong Password Encryption.
Ok. Установка завершена.
Настройки безопасности
Для настройки безопасного доступа к MySQL существует специальный скрипт:
mysql_secure_installation
Он позволяет настроить следующие параметры, я указал то что в скобках:
- VALIDATE PASSWORD COMPONENT — использовать компонент VALIDATE PASSWORD? (No)
- Изменить пароль от root? (No)
- Удалить анонимных пользователей? (y)
- Запретить удалённый логин под root? (y)
- Удалить тестовую базу и доступ к ней? (y)
- Обновить таблицу привилегий? (y)
MySQL сервер должен запуститься. Посмотрим статус:
systemctl status mysql
Проверка на автозагрузку:
systemctl is-enabled mysql
Если MySQL не запускается автоматически:
systemctl enable mysql
Перемещение базы данных MySQL 8
База данных MySQL 8 при установке на Ubuntu по умолчанию пишется в папку /var/lib/mysql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/mysql/mysql.
Создадим директорию для MySQL:
cd /opt
mkdir mysql
ls -Fla
Проверим где находится текущая БД MySQL.
mysql -u root -p
select @@datadir;
Видим, что файлы базы находятся в /var/lib/mysql/. Чтобы закрыть командную строку MySQL, введите exit.
exit
Останавливаем сервер MySQL:
systemctl stop mysql
Проверяем статус, мы должны убедиться, что сервер MySQL остановлен:
systemctl status mysql
Видим — Status: "Server shutdown complete".
С помощью rsync переносим MySQL в другую папку:
rsync -av /var/lib/mysql /opt/mysql
Переименуем старую папку /var/lib/mysql, сохраним её на случай сбоя:
mv /var/lib/mysql /var/lib/mysql.bak
По умолчанию путь настроен в файле /etc/mysql/mysql.conf.d/mysqld.cnf, редактируем.
vim /etc/mysql/mysql.conf.d/mysqld.cnf
Найдите строку datadir= и укажите в ней путь к новому каталогу данных /opt/mysql/mysql.
MySQL при запуске проверяет наличие директории /var/lib/mysql/mysql (ЗАЧЕМ?). Чтобы он не ругался, создадим пустую папку:
mkdir /var/lib/mysql/mysql -p
Запускаем MySQL:
systemctl start mysql
systemctl status mysql
Проверяем текущий путь:
mysql -u root -p
select @@datadir;
Путь теперь /opt/mysql/mysql/.
Удаление ненужных файлов:
rm -R /var/lib/mysql.bak
Вместо заключения
Мы установили MySQL 8 на Debian 11. После установки настроили параметры безопасности и переместили базу в другую директорию.
Установка не заняла много времени.
Ссылки
Установка MySQL 8 на Windows Server 2016