Установка MySQL на Fedora 25

Возникла необходимость установить реляционную систему управления базами данных MySQL на веб-сервер под управлением Fedora 25. Оказалось, что за один шаг такую задачу не решить. Пришлось искать решения. Так появилась эта методичка, которая написана в первую очередь "для себя", тут задокументированы все этапы установки или апгрейда MySQL до последней версии. Задача решена под Linux, дистрибутив Fedora 25, но данная методика должна быть работоспособна и под Fedora 24/23, а также под CentOS 7.3/6.8 или Red Hat Enterprise Linux(RHEL) 7.3/6.8. Более того, для Oracle Linux и Scientific Linux последовательность действий будет идентичной.

Внимание: Если выполняется апгрейд MySQL (существующая версия заменяется более новой), следует выполнить резервное копирование конфигурационных файлов и непосредственно БД. Не забудьте выполнить команду mysql_upgrade.

1. Все действия выполняем от супер-пользователя

su -
## или же ##
sudo -i

2. Добавляем репозиторий

Устанавливаем СУБД MySQL 5.7.17 на Fedora 25/24/23 или CentOS 7.3/6.8.

Fedora

## Fedora 25 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm
## Fedora 24 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc24-9.noarch.rpm
## Fedora 23 ##
dnf install https://dev.mysql.com/get/mysql57-community-release-fc23-9.noarch.rpm

CentOS или RHEL

## CentOS 7 ##
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

## CentOS 6 ##
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

## CentOS 5 ## 
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el5-7.noarch.rpm

3. Установка или повышение версии MySQL до 5.7.17

Fedora 25/24/23

dnf install mysql-community-server

CentOS 7.3/6.8

yum install mysql-community-server

4. Запуск сервера MySQL и автозапуск MySQL после загрузки

Fedora 25/24/23 and CentOS 7

systemctl start mysqld.service
systemctl enable mysqld.service

CentOS 6.8/5.11

/etc/init.d/mysql start
## или же ##
service mysql start ## use restart after update
chkconfig --levels 235 mysqld on

5. Получение временного пароля

Чтобы узнать назначенный нам пароль, выполним команду

grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1

Пример вывода на экран:

2017-02-14 10:00 [Note] A temporary password is generated for root@localhost: rR44i@EIUK

Очевидно, наш пароль: rR44i@EIUK

6. Обеспечение базовой безопасности MySQL

  • Change root password
  • Remove anonymous users
  • Disallow root login remotely
  • Remove test database and access to it
  • Reload privilege tables

Запускаем MySQL Secure Installation следующей командой

/usr/bin/mysql_secure_installation

Потребуется ввести пароль пользователя root, после чего надо будет обновить пароль и ответить Yes на несколько вопросов.

Можно не выполнять “MySQL Secure Installation” но задать собственный пароль для root определённо следует!

mysqladmin -u root password -p [your_password_here]

Например:

mysqladmin -u root password secret

7. Соединение с MySQL (на localhost) с использованием пароля

mysql -u root -p
## или же ##
mysql -h localhost -u root -p

8. Создание БД, пользователя MySQL и разрешение удалённых подключений

This example uses following parameters:

  • DB_NAME = webdb
  • USER_NAME = webdb_user
  • REMOTE_IP = 10.4.0.1
  • PASSWORD = secret123
  • PERMISSIONS = ALL

## CREATE DATABASE ##
mysql> CREATE DATABASE webdb;
## CREATE USER ##
mysql> CREATE USER 'webdb_user'@'10.4.0.1' IDENTIFIED BY 'secret123';
## GRANT PERMISSIONS ##
mysql> GRANT ALL PRIVILEGES ON webdb.* TO 'webdb_user'@'10.4.0.1';
##  FLUSH PRIVILEGES, Tell the server to reload the grant tables  ##
mysql> FLUSH PRIVILEGES;

Если всё сделано правильно, можем проверить, какие пакеты установились в системе.

MySQL terminal

При желании, можем разрешить удалённые соединения – откроем порт 3306 на сервере

1. Fedora 25/24/23 and CentOS 7

1.1 Добавляем правила для Firewalld

firewall-cmd --permanent --zone=public --add-service=mysql
## или же ##
firewall-cmd --permanent --zone=public --add --port=3306/tcp

1.2 Перезапускаем firewalld.service

systemctl restart firewalld.service

2. CentOS/Red Hat (RHEL) 6.8/5.11

2.1 Редактируем /etc/sysconfig/iptables:

mcedit -w /etc/sysconfig/iptables

2.2 Добавляем правило INPUT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

2.3 Перезапуск фаер-волла

service iptables restart
## или же ##
/etc/init.d/iptables restart

3. Протестируем удалённое подключение

mysql -h 10.4.0.1 -u myusername -p
Авторизуйтесь, чтобы получить возможность оставлять комментарии

Другие материалы в этой категории:

Go to top