- Как установить и настроить MySQL в Ubuntu 20.04
- Создание облачного сервера
- Подготовка системы
- Подключение по SSH
- Настройка брандмауэра в Ubuntu
- Установка MySQL
- Начальная настройка MySQL
- Настройка аутентификации и управление пользователями
- Аутентификация по паролю
- Дополнительный пользователь (опционально)
- Тестирование MySQL
- Удаление MySQL
- Зарегистрируйтесь в панели управления
- Как установить MySQL на Ubuntu 20.04
- Установка MySQL 8.0
- Настройка MySQL
- Настройка аутентификации с помощью пароля
- Автоматический запуск MySQL
Как установить и настроить MySQL в Ubuntu 20.04
MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер. Создание облачного сервера Создать облачный сервер с операционной системой Ubuntu 20.04 можно в Облачной платформе Selectel. Откройте панель управления, перейдите в раздел Серверы и нажмите Создать сервер. В качестве […]
Эта инструкция — часть курса «MySQL для новичков».
MySQL — это реляционная СУБД, которая использует язык запросов SQL. В инструкции мы рассмотрим, как запустить MySQL на Ubuntu 20.04. Для этого нам потребуется облачный сервер.
Создание облачного сервера
Создать облачный сервер с операционной системой Ubuntu 20.04 можно в Облачной платформе Selectel.
Откройте панель управления, перейдите в раздел Серверы и нажмите Создать сервер.
В качестве источника выберите в списке Ubuntu 20.04.
Сконфигурировать сервер можно любым образом, подробнее о настройках в Базе знаний.
Чтобы в дальнейшем можно было подключиться к серверу извне, создайте плавающий IP-адрес. Для этого в выпадающем списке Сеть выберите Плавающий IP-адрес.
Подготовка системы
Перед установкой MySQL сервер нужно подготовить: подключиться к нему по SSH и настроить брандмауэр с помощью UFW.
Подключение по SSH
Для подключения по SSH в терминале локальной машины введите:
IP-адрес сервера находится на вкладке Порты на странице сервера.
Пароль для root-пользователя, который требуется при аутентификации, можно найти на вкладке Консоль.
Настройка брандмауэра в Ubuntu
После подключения настройте брандмауэр так, чтобы он разрешал подключения к серверу по SSH.
Установите утилиту UFW для настройки брандмауэра:
Проверьте список профилей UFW:
В списке должен быть указан OpenSSH:
Available applications: OpenSSH
Разрешите подключения по SSH:
Убедитесь, что брандмауэр активен, и включены профили OpenSSH:
Вывод будет выглядеть так:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Теперь можно переходить к установке и настройке MySQL на облачном сервере.
Установка MySQL
Установить MySQL на Ubuntu 20.04 можно через пакет:
sudo apt install mysql-server
На момент публикации инструкции по умолчанию ставится версия 8.0.23.
Вы можете проверить установленную версию:
Начальная настройка MySQL
Запустите скрипт для повышения безопасности MySQL:
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> SELECT user,authentication_string,plugin,host FROM mysql.user;
Для пользователя root используется auth_socket:
Назначьте пользователю root новый плагин caching_sha2_password. Также установите пароль того уровня надежности, который вы задали ранее (на шаге Базовая настройка MySQL) — это может быть, например, тот же самый пароль. Введите его вместо password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
Некоторые приложения для работы с MySQL (например, phpMyAdmin) не будут надежно работать с плагином caching_sha2_password. В таком случае лучше установить другой плагин — mysql_native_password.
Проверьте, что для пользователя root плагин изменился на caching_sha2_password:
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Закройте командную строку MySQL:
Дополнительный пользователь (опционально)
Вы можете создать дополнительного пользователя для работы с MySQL.
Если вы установили аутентификацию по паролю, изменилась команда для подключения к консоли MySQL:
Если у вас не установлена аутентификация по паролю, то для входа в MySQL используйте:
Создайте нового пользователя и поставьте пароль:
mysql> CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
Если вы хотите дать пользователю полный доступ к определенной базе данных, используйте:
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'new_user'@'localhost';
Тестирование MySQL
В выводе должен быть индикатор зеленого цвета и статус active:
● 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 происходит через команду:
sudo systemctl start mysql
Если вы хотите дополнительно проверить работу MySQL, используйте инструмент mysqladmin — он нужен для администрирования MySQL-сервера. Подключитесь к MySQL и запросите пароль от root:
sudo mysqladmin version -u root -p
Если вывод выглядит подобным образом, то MySQL успешно установлена и готова к использованию:
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, сначала остановите сервисы:
sudo systemctl stop mysql
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
Удалите всех пользователей:
sudo deluser --remove-home mysql
Удалите файлы базы данных, конфигурационные файлы и логи:
sudo rm -rf /etc/mysql /var/lib/mysql /var/log/mysql
Удалите оставшиеся зависимости:
Как установить MySQL на Windows
Создание базы данных в MySQL
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.
Как установить MySQL на Ubuntu 20.04
MySQL – система управления базами данных (СУБД), используемая чаще всего в веб-разработке, но и не только там. MySQL является, наверное, одной из самых распостранённых СУБД. Её сильные стороны – быстрота, надёжность, универсальность. Ниже о том, как MySQL можно установить на сервер Ubuntu 20.04.
Установка MySQL 8.0
Первым делом, как всегда, необходимо обновить репозитории пакетов сервера:
Теперь можно переходить к установке пакетов MySQL:
$ sudo apt install mysql-server
На момент написания статьи в репозиториях доступна версия 8.0.22. Проверить версию установленного пакета можно при помощи команды:
На этом процесс установки MySQL закончен. Теперь, необходимо внести некоторые изменения в конфигурацию установленной СУБД.
Настройка MySQL
Настройка заключается в изменении некоторых наиболее уязвимых опций СУБД, которые используются по умолчанию. Данное действие производится при помощи встроенного в MySQL специального скрипта:
$ sudo mysql_secure_installation
Для начала в открывшемся диалоге необходимо определить, нужно ли производить настройку компоненты валидации пароля, используемой при проверке надёжности пароля в MySQL. Если вы даёте согласие на использование валидации пароля, скрипт предложит вам установить уровень валидации, выбрав из 0 – низкий, 1 – средний, 2 – высокий:
На следующем шаге нужно установить пароль для учётной записи root в MySQL:
Скрипт оценит надёжность введённого пароля и запросит вашего согласия на его использование:
В последующем диалоге можно использовать ответ Yes для удаления анонимных пользователей СУБД, запрещения удалённого подключения под рутовой учётной записью MySQL, удаления дефолтной БД test и для загрузки новых таблиц привилегий:
Настройка аутентификации с помощью пароля
Для аутентификации учётной записи root MySQL по умолчанию используется плагин auth_socket. Это во многом более безопасно и удобно, но может осложнять взаимодействие СУБД с внешними приложениями в случаях, когда необходимо предоставить им доступ к пользователю MySQL.
Чтобы использовать пароль для подключения к СУБД под учётной записью root нужно изменить метод аутентификации. В нашем случае это – auth_socket.
В командной строке необходимо подключиться к MySQL:
и вывести список аккаунтов СУБД, в котором виден используемый ими метод аутентификации (колонка plugin), командой:
mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;
Вывод данной инструкции должен выглядеть примерно так:
Для изменения метода аутентификации учётной записи root нужно использовать команду:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'psswd';
где значение psswd необходимо заменить на более надёжный пароль, который будет в дальнейшем использоваться учётной записью root для авторизации в MySQL.
Если вы планируете использовать MySQL с приложениями PHP, такими как phpMyAdmin, то возможно, будет актуально настроить аутентификацию с помощью более старого плагина mysql_native_password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psswd
';
Для применения произведённых изменений необходимо выполнить инструкцию:
Проверить применение изменений можно набрав команду:
mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;
Выход из оболочки MySQL производится командой:
Если для подключения к MySQL будет использоваться специально созданная для этого учётная запись, то необходимо войти в MySQL командой:
либо, если аутентификация рутовой учётной записи производится с помощью пароля:
Далее, создайте нового пользователя:
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'psswd';
Для предоставления новому пользователю прав на доступ к таблицам базы данных выполните инструкцию:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
После чего можно выйти из оболочки MySQL:
Автоматический запуск MySQL
Каким бы способом не был установлен MySQL, его запуск должен производиться автоматически. Чтобы убедиться в этом, необходимо набрать:
$ systemctl status mysql.service
Также, активировать MySQL можно командой:
$ sudo systemctl start mysql
Теперь на вашем сервере произведена базовая установка СУБД MySQL.