Установка MySQL в Ubuntu

2024-03-24 09:29
44
Ця стаття на мовах: UA / RU

Стаття у розділах:

Сервера

Шаг 1 — Установка MySQL 

Для установки MySQL на Ubuntu 20.04 можно воспользоваться репозиторием пакетов APT. На данный момент в репозитории Ubuntu представлена версия MySQL 8.0.19.

Перед началом установки обновите индекс пакетов на сервере, выполнив следующую команду:

sudo apt update

Затем выполните установку пакета mysql-server:

sudo apt install mysql-server

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

Шаг 2 — Настройка MySQL 

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

Запустите скрипт безопасности с помощью команды sudo:

sudo mysql_secure_installation

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

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

После запуска скрипта безопасности MySQL вас попросят установить пароль для пользователя root MySQL. Введите и подтвердите безопасный пароль по вашему выбору.

Если вы воспользовались плагином валидации пароля, вы получите информацию о его надежности. Затем скрипт спросит, хотите ли вы продолжить использовать введённый вами пароль или предпочтёте ввести новый. Если вы довольны надежностью введённого пароля и хотите продолжить его использование, введите Y для подтверждения этого.

Далее вы можете использовать клавиши Y и ENTER, чтобы принять ответы по умолчанию для всех последующих вопросов. При выборе этих ответов будут удалены анонимные пользователи и тестовая база данных, отключен удаленный доступ для пользователя root, а также загружены новые правила, чтобы внесенные изменения сразу вступили в силу в MySQL.

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

Шаг 3 — Настройка аутентификации и прав пользователей (опционально) 

В Ubuntu, при запуске MySQL 5.7 (и более поздних версий), для пользователя root MySQL по умолчанию используется аутентификация с помощью плагина auth_socket, а не пароля. Во многих случаях это обеспечивает более высокий уровень безопасности и удобства, однако это также может усложнить ситуацию, если требуется предоставить доступ внешней программе (например, phpMyAdmin).

Чтобы использовать пароль для подключения к MySQL в качестве пользователя root, необходимо изменить метод аутентификации с auth_socket на другой плагин, например, caching_sha2_password или mysql_native_password. Для этого откройте командную строку MySQL через терминал:

sudo mysql

Затем проверьте, какой метод аутентификации используют ваши аккаунты пользователей MySQL с помощью следующей команды:

mysql>SELECT user,authentication_string,plugin,host FROM mysql.user;


В данном примере видно, что пользователь root использует метод аутентификации с помощью плагина auth_socket. Для настройки учетной записи root на использование метода аутентификации с помощью пароля выполните команду ALTER USER, чтобы изменить используемый плагин аутентификации и установить новый пароль.

Не забудьте заменить 'password' на более надежный пароль, учитывая, что эта команда заменит пароль root, установленный на шаге 2:

mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_новый_пароль';

После выполнения этой команды пользователь root сможет войти в систему с использованием указанного вами пароля.

Примечание: Предыдущая команда ALTER USER устанавливает аутентификацию root пользователя MySQL с использованием плагина caching_sha2_password. Согласно официальной документации MySQL, caching_sha2_password считается предпочтительным плагином аутентификации MySQL, так как он обеспечивает более безопасное шифрование пароля, чем более старый, но все еще широко используемый mysql_native_password.

Однако многие PHP-приложения, такие как phpMyAdmin, могут работать нестабильно с caching_sha2_password. Если вы планируете использовать эту базу данных с PHP-приложением, возможно, вам потребуется установить аутентификацию root с использованием mysql_native_password:

mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Затем выполните команду FLUSH PRIVILEGES, которая просит сервер перезагрузить предоставленные таблицы и ввести в действие изменения:

mysql>FLUSH PRIVILEGES;

Проверьте методы аутентификации, применяемые для каждого из ваших пользователей, чтобы подтвердить, что root-пользователь больше не использует для аутентификации плагин auth_socket:

mysql>SELECT user,authentication_string,plugin,host FROM mysql.user;

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

mysql>exit

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

sudo mysql

Примечание. Если у вас активирована аутентификация root​​ с помощью пароля, как описано в предыдущих параграфах, вам потребуется использовать другую команду для доступа к оболочке MySQL. Следующая команда будет запускать ваш клиент MySQL с обычными правами пользователя, и вы получите права администратора внутри базы данных только с помощью аутентификации:

mysql -u root -p

Создайте нового пользователя и придумайте для него надежный пароль:

mysql>CREATE USER 'pcinfouser'@'localhost' IDENTIFIED BY 'password';

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

mysql>GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

Обратите внимание, что на данный момент вам не нужно запускать команду FLUSH PRIVILEGES снова. Данная команда нужна только при изменении предоставленных таблиц с применением таких выражений, как INSERT, UPDATE или DELETE. Поскольку вы создали нового пользователя вместо изменения существующего, команда FLUSH PRIVILEGES​​​ не требуется.

После этого выйдите из оболочки MySQL:

mysql>exit

В заключение проверим установку MySQL.

Шаг 4 — Проверка MySQL Независимо от способа установки MySQL должна автоматически запускаться. Чтобы проверить это, выполните команду для проверки статуса:

systemctl status mysql.service

Результат будет примерно следующим:

Если MySQL не запускается, вы можете активировать его с помощью команды:

sudo systemctl start mysql

Чтобы дополнительно проверить, можно попробовать подключиться к базе данных с помощью инструмента mysqladmin, который предоставляет возможность выполнения административных команд. Например, следующая команда позволяет подключиться к MySQL в качестве пользователя root (-u root), запросить пароль (-p) и получить версию сервера:

mysqladmin -u root -p version

После выполнения этой команды вас попросят ввести пароль для пользователя root MySQL. Если подключение установлено успешно, вы получите информацию о версии MySQL.

sudo mysqladmin -p -u root version

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

Это означает, что система MySQL запущена и работает.

Заключение
Теперь на вашем сервере установлена базовая версия MySQL.


Сподобалась стаття? Читайте нас в телеграм