Найти тему
Merion Academy

Установка MySQL Server на CentOS 7

Оглавление

Всем привет! Сегодня в статье рассмотрим установку MySQL Server на CentOS 7. MySQL – популярная реляционная СУБД с открытым кодом, и, её популярность означает огромное количество информации в интернете и большое количество хорошо документированных библиотек. MySQL поддерживает множество стандартных функций, присущих СУБД – репликацию, триггеры и прочие.

В большинстве дистрибутивов по умолчанию присутствуют репозитории, в которых есть нужный нам пакет MySQL – однако, на примере CentOS 7 Minimal я хотел бы показать процесс добавления официального YUM репозитория от Oracle, в котором всегда доступна последняя версия.

ПРОЦЕСС УСТАНОВКИ

Предварительно нам необходимо установить wget чтобы скачивать файлы – для этого выполните команду yum install wget.

Далее, для начала процесса установки необходимо зайти на сайт MySQL по следующему линку: http://dev.mysql.com/downloads/repo/yum/ , выбрать необходимый дистрибутив (в нашем случае - Red Hat Enterprise Linux 7 / Oracle Linux 7) и нажать Download. Ссылка для скачивания может быть получена без регистрации, для этого нужно найти слова «No thanks, just start my download»

Скопируем адрес ссылки и выполним команду wget с этим адресом:

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

Без каких-либо модификаторов команда wget скачает файл в каталог, в котором вы находитесь в данный момент, далее необходимо выполнить команду rpm –Uvh mysql57-community-release-el7-11.noarch.rpm - для более простого ввода имени пакета воспользуйтесь табуляцией (нажать Tab).

Теперь подключен официальный репозиторий Oracle, настала очередь установки непосредственно самого MySQL сервера:

yum –y install mysql-community-server

Процесс скачивания и установки пакета займёт какое-то время.

-2

Далее необходимо разрешить автозапуск демона MySQL при загрузке:

/usr/bin/systemctl enable mysqld

И запустить сам MySQL сервер:

/usr/bin/systemctl start mysqld

НАСТРОЙКА БЕЗОПАСНОСТИ

После старта сервера, необходимо настроить политики безопасности – для этого служит скрипт mysql_secure_installation - но предварительно нам понадобится случайно сгенерированный пароль для root – его можно выяснить с помощью команды grep 'temporary password' /var/log/mysqld.log. Пример на скриншоте ниже:

-3

Далее нужно ввести команду /usr/bin/mysql_secure_installation и вам будет предложено ввести данный пароль на рут, поменять его на нечто вроде E+FW4tz8$?/7$dCm и ответить на несколько вопросов:

  • Set root password? [Y/n] Y - установка пароля на root;
  • Remove anonymous users? [Y/n] Y - удаление анонимных пользователей;
  • Disallow root login remotely? [Y/n] Y - запрет удаленного логина;
  • Remove test database and access to it? [Y/n] Y - удаление тестовых баз данных и доступа к ним;
  • Reload privilege tables now? [Y/n] Y - перезагрузка привилегированных таблиц;

Очень советую пароль придумать максимально сложный – кроме того, по дефолту, у вас не получится поставить простой пароль.

СОЗДАНИЕ ТЕСТОВОЙ БАЗЫ ДАННЫХ И МАНИПУЛЯЦИИ С ПОЛЬЗОВАТЕЛЯМИ

Когда вам понадобится дать доступ какому-нибудь приложению доступ к вашей БД, ни в коем случае нельзя этого делать от пользователя root – для каждого приложения должен быть создан свой пользователь. Для создания, сначала необходимо зайти в MySQL от имени администратора с помощью команды mysql -u root -p mysql. Далее я приведу пример создания БД testdb и открытия полного доступа к этой БД для пользователя testuser (имя пользователя и пароль соответственно необходимо скорректировать относительно вашей непосредственной задачи):

create database testdb;
grant all on appdb.* to 'testuser'@'localhost' identified by 'password';
quit

Для проверки доступа нужно использовать команду mysql -u testuser -p -h localhost testdb , а для выводы всех имеющихся БД – команду SHOW DATABASES;

Рассмотрим пример создания пользователя для MySQL и просмотра списка всех пользователей. MySQL содержит информацию о пользователях в своей собственной базе данных под названием mysql, внутри которой информация о пользователях находится в виде таблицы под названием user. Если вы хотите вывести весь список пользователей, то необходимо выполнить следующую команду:

SELECT User, Host, Password FROM mysql.user;

Это стандартный MySQL синтаксис. Давайте разберемся с ним:

  • SELECT - запрос информации;
  • User, Host, Password - конкретизация полей, из которых информация должна быть извлечена. В данном случае мы ищем информацию о пользователе, хостнейме и зашифрованном пароле;
  • FROM mysql.user - запрашиваем информацию мы из БД mysql и таблицы user;
  • ; - точка с запятой означают конец команды, в MySQL все запросы должны кончаться точкой с запятой;