Описание и технические требования

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

  1. Apache;
  2. Linux;
  3. MySQL;
  4. PHP/Python/Perl.

Для того чтобы установить MySQL на Ubuntu, необходимо соблюсти следующие условия:

  • Административный доступ к серверу.
  • По возможности не использовать для администрирования root-доступ.
  • На сервер необходимо инсталлировать ОС Ubuntu 18.04.

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

Подобная установка MySQL на сервер Ubuntu, состоит из четырех этапов:

  1. Установка.
  2. Настройка.
  3. Настройка привилегий.
  4. Тестирование.

Установка

В репозитории Ubuntu, как правило, располагается актуальная версия MySQL. Для обновления индекса пакетов используется команда – apt:

sudo apt update

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

sudo apt install mysql-server

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

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

Настройка

После установки «чистой» версии MySQL в обязательном порядке запускается скрипт, который отвечает за безопасность. Он меняет ключевые настройки безопасности. Например, генерирует пароли пользователей  с правами root, которые не были заданы по умолчанию.

В более ранних выпусках СУБД была инициализация скрипта в ручном режиме. Сейчас, это выполняется автоматически.

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

sudo mysql_secure_installation

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

Результатом станет предложение о внесении изменений в конфигурационные файлы безопасности. На этом этапе необходимо выполнить три действия:

  1. Инсталлировать Validate Password Plugin, отвечающий за проверку допустимости паролей в СУБД.
  2. Сгенерировать пароль пользователям, обладающим root-правами.
  3. Ввести сгенерированный пароль еще раз.

Для последующих действий достаточно нажать символ «Y» (согласие с операцией) и клавишу «ENTER» (выполнение операции).

По окончании алгоритма будут удалены анонимные пользователи, а также тестовые базы данных. Возможность удаленного подключения для пользователей с правами root будет отключена.

Все эти изменения сохранятся по отношению к конкретно устанавливаемой базе данных MySQL. Активация новой базы данных происходит посредством команды:

mysql_install_db

Указанный скрипт работает только для MySQL 5.7.6 и старше.

Более «свежие» версии оболочки потребуют введения команды:

mysqld –initialize

Настройка привилегий

Смена способа аутентификации

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

Для обеспечения безопасности и создания доступа для пользователей со статусом root, входить нужно при помощи пароля. Для чего метод идентификации через плагин «auth_socket» меняется на идентификацию через пароль «mysql_native_password».

Чтобы произвести замену, для начала входим в MySQL как пользователь root через команду:

sudo mysql

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

Далее, делается проверка на метод идентификации для каждого пользователя root посредством команды:

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

Вывод:

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

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

Применить авторизацию при помощи пароля можно командой:

ALTER USER

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

При этом необходимо изменить значение «password» на надежный пароль. Полная команда выглядит так:

'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

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

Необходимо проверить, что новые настройки вступили в силу, и пользователь root входит, только используя пароль, без помощи плагина auth_socket. Команда:

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

Вывод:

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

В списке видно, что пользователи с правами root проходят идентификацию, вводя пароль, а не через плагин. Получив такое подтверждение, можно выполнить выход из MySQL через команду:

exit

Смена способа аутентификации

В некоторых случаях может потребоваться создание отдельного пользователя с ограниченными правами. Например, он может добавлять в базу новые данные, но удалять или корректировать их не сможет.

Для этого выполняется вход в среду базы:

sudo mysql

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

mysql -u root -p

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

После этого появится возможность создания нового пользователя базы данных и генерации для него надежного пароля. Сделать это можно командой:

CREATE USER 'пользователь'@'localhost' IDENTIFIED BY 'password';

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

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

 

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

На последнем шаге выполняется команда:

exit

Она позволяет выйти из системы MySQL.

Тестирование

Когда настройка MySQL на Ubuntu закончена, необходимо удостовериться в корректности работы сервера базы данных. Выполнить это можно двумя способами:

  1. Проверка автоматического запуска.
  2. Принудительное подключение к базе данных.

Независимо от способа установки базы данных, она запускается в автоматическом режиме. Проверить это можно при помощи команды:

systemctl status mysql.service

В логе консоли должен появиться вывод, соответствующий нижеприведенному:

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

В случае, когда сервер базы данных еще не запущен активация осуществляется командой:

sudo systemctl start mysql

Для вторичного контроля можно использовать принудительное подключение к базе данных посредством команды:

sudo mysqladmin -p -u root version

Для введения административных команд наиболее удобно использовать инструмент mysqladmin, являющимся внутренней утилитой MySQL.

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

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

Данный ответ подтверждает, что сервер базы данных запущен и находится в рабочем состоянии.

Удаление MySQL

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

Удаление MySQL в Ubuntu начинается с ее остановки при помощи команды:

sudo service mysql stop

Если необходима полная деинсталляция базы данных, включая пользователей, пакеты, настройки конфигурации и прочее, относящееся к СУБД, то нужно последовательно выполнить следующие команды:

sudo apt-get remove --purge mysql-server mysql-client mysql-common

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

sudo apt-get autoremove

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

sudo apt-get autoclean

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

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

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean