Ubuntu20: Как установить и настроить MySQL
Подготовка системы
Перед установкой MySQL сервер нужно подготовить: подключиться к нему по SSH и настроить брандмауэр с помощью UFW.
Подключение по SSH
Для подключения по SSH в терминале локальной машины введите:
1 |
ssh root@server_ip |
IP-адрес сервера находится на вкладке Порты на странице сервера.
Пароль для root-пользователя, который требуется при аутентификации, можно найти на вкладке Консоль.
Настройка брандмауэра в Ubuntu
После подключения настройте брандмауэр так, чтобы он разрешал подключения к серверу по SSH.
Обновите индекс пакетов:
1 |
sudo apt update |
Установите утилиту UFW для настройки брандмауэра:
1 |
sudo apt install ufw |
Проверьте список профилей UFW:
1 2 3 4 |
sudo ufw app list В списке должен быть указан OpenSSH: Available applications: OpenSSH |
Разрешите подключения по SSH:
1 |
sudo ufw allow OpenSSH |
Активируйте брандмауэр:
1 |
sudo ufw enable |
Убедитесь, что брандмауэр активен, и включены профили OpenSSH:
1 2 3 4 5 6 7 8 |
sudo ufw status Вывод будет выглядеть так: Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v |
Теперь можно переходить к установке и настройке MySQL на облачном сервере.
Установка MySQL
Установить MySQL на Ubuntu 20.04 можно через пакет:
1 |
sudo apt install mysql-server |
На момент публикации инструкции по умолчанию ставится версия 8.0.23.
Вы можете проверить установленную версию:
1 |
mysql --version |
Начальная настройка MySQL
Запустите скрипт для повышения безопасности MySQL:
1 |
sudo mysql_secure_installation |
Система запросит разрешение на установку плагина валидации паролей. Этот плагин проверяет безопасность пароля и позволяет пользователю ставить только достаточно защищенные пароли.
Если вы хотите установить этот плагин, введите в консоли y или Y.
Есть три уровня защищенности пароля: LOW (0), MEDIUM (1) и STRONG (2). Чтобы задать уровень пароля, нажмите соответствующую цифру, например, 2 для сильного пароля. Даже если вы на предыдущем шаге не установили плагин, система запросит вас поставить пароль для пользователя root — введите его два раза.
Если плагин установлен, будет показан уровень надёжности пароля Estimated strength of the password.
Далее система задаст ряд вопросов: хотите ли вы использовать этот пароль для продолжения работы, удалить ли всех анонимных пользователей, запретить удаленно подключаться как root, удалить тестовую БД и доступ к ней, перезагрузить таблицы с привилегиями. Вы можете ответить на все эти вопросы положительно: y, Y или Enter.
Если в выводе появится All done!, то пароль для root успешно настроен.
По умолчанию вход в MySQL в Ubuntu не будет происходить по паролю. Чтобы настроить подключение через пароль, следуйте инструкции ниже.
Настройка аутентификации и управление пользователями
Аутентификация по паролю
Для root-пользователя аутентификация в MySQL происходит с использованием плагина auth_socket. Чтобы при подключении запрашивался пароль, нужно изменить плагин.
Войдите в оболочку MySQL:
1 |
sudo mysql |
Посмотрите, какой плагин используется:
1 |
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; |
Для пользователя root используется auth_socket:

Назначьте пользователю root новый плагин caching_sha2_password. Также установите пароль того уровня надежности, который вы задали ранее (на шаге Базовая настройка MySQL) — это может быть, например, тот же самый пароль. Введите его вместо password:
1 |
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; |
Некоторые приложения для работы с MySQL (например, phpMyAdmin) не будут надежно работать с плагином caching_sha2_password. В таком случае лучше установить другой плагин — mysql_native_password.
Активируйте изменения:
1 |
mysql> FLUSH PRIVILEGES; |
Проверьте, что для пользователя root плагин изменился на caching_sha2_password:
1 |
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; |
Закройте командную строку MySQL:
1 |
mysql> exit |
Дополнительный пользователь (опционально)
Вы можете создать дополнительного пользователя для работы с MySQL.
Если вы установили аутентификацию по паролю, изменилась команда для подключения к консоли MySQL:
1 |
mysql -u root -p |
Если у вас не установлена аутентификация по паролю, то для входа в MySQL используйте:
1 |
sudo mysql |
Создайте нового пользователя и поставьте пароль:
1 |
mysql> CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password'; |
Если вы хотите дать пользователю полный доступ к определенной базе данных, используйте:
1 |
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'localhost'; |
Закройте консоль MySQL:
1 |
mysql> exit |
Тестирование MySQL
Посмотрите статус MySQL:
1 |
systemctl status mysql |
В выводе должен быть индикатор зеленого цвета и статус active:
1 2 3 4 5 6 7 8 9 |
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2021-03-22 09:57:07 UTC; 2h 39min ago Main PID: 2630 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 1107) Memory: 331.4M CGroup: /system.slice/mysql.service └─2630 /usr/sbin/mysqld |
По какой-то причине сервис может быть не активен. В таком случае запуск MySQL в Ubuntu происходит через команду:
1 |
sudo systemctl start mysql |
Если вы хотите дополнительно проверить работу MySQL, используйте инструмент mysqladmin — он нужен для администрирования MySQL-сервера. Подключитесь к MySQL и запросите пароль от root:
1 |
sudo mysqladmin version -u root -p |
Если вывод выглядит подобным образом, то MySQL успешно установлена и готова к использованию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
mysqladmin Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu)) Copyright (c) 2000, 2021, Oracle and/or its affiliates. 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.23-0ubuntu0.20.04.1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 2 hours 47 min 34 sec Threads: 2 Questions: 28 Slow queries: 0 Opens: 141 Flush tables: 3 Open tables: 60 Queries per second avg: 0.002 |
Удаление MySQL
Если по какой-то причине вам нужно удалить MySQL из Ubuntu 20.04, сначала остановите сервисы:
1 |
sudo systemctl stop mysql |
Удалите пакеты MySQL:
1 |
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* |
Удалите всех пользователей:
1 |
sudo deluser --remove-home mysql |
1 |
sudo delgroup mysql |
Удалите файлы базы данных, конфигурационные файлы и логи:
1 |
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql |
Удалите оставшиеся зависимости:
1 |
sudo apt-get autoremove |
1 |
sudo apt-get autoclean |