УСТАНОВКА MYSQL В CENTOS 8

Thank you for reading this post, don't forget to subscribe!

1: Установка MySQL

В систе­ме CentOS 8 паке­ты MySQL 8 мож­но най­ти в стан­дарт­ном репозитории.

Что­бы уста­но­вить пакет mysql-server и ряд зави­си­мо­стей, вве­ди­те сле­ду­ю­щую команду:

sudo dnf install mysql-server

По запро­су нажми­те y и Enter, что­бы продолжить.

. . .
Install  49 Packages
Total download size: 46 M
Installed size: 252 M
Is this ok [y/N]: y

Систе­ма MySQL теперь уста­нов­ле­на на ваш сер­вер, но пока еще она не рабо­та­ет. Уста­нов­лен­ный вами пакет настра­и­ва­ет MySQL в каче­стве сер­ви­са systemd, кото­рый назы­ва­ет­ся mysqld.service. Вам нуж­но запу­стить этот сер­вис с помо­щью этой команды:

sudo systemctl start mysqld.service

Что­бы убе­дить­ся, что сер­вис рабо­та­ет пра­виль­но, запу­сти­те сле­ду­ю­щую коман­ду. Обра­ти­те вни­ма­ние: боль­шин­ство команд systemctl, в том чис­ле start и status, не тре­бу­ют вклю­чать .service в имя файла.

sudo systemctl status mysqld

Если сер­вис MySQL успеш­но запу­стил­ся, в выво­де вы увидите:

mysqld.service - MySQL 8.0 database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago
Main PID: 15723 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 5056)
Memory: 474.2M
CGroup: /system.slice/mysqld.service
└─15723 /usr/libexec/mysqld --basedir=/usr
Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server...
Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database
Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

Затем добавь­те MySQL в авто­за­груз­ку, что­бы сер­вис запус­кал­ся вме­сте с вашим сервером.

sudo systemctl enable mysqld

При­ме­ча­ние: Если в буду­щем вы захо­ти­те уда­лить MySQL из авто­за­груз­ки, вы може­те исполь­зо­вать команду:

sudo systemctl disable mysqld

Итак, теперь MySQL запу­щен и рабо­та­ет на вашем сер­ве­ре. Теперь давай­те повы­сим без­опас­ность СУБД.

2: Защита MySQL

MySQL пред­ла­га­ет встро­ен­ный сце­на­рий без­опас­но­сти, кото­рый изме­нит неко­то­рые пара­мет­ры по умол­ча­нию и забло­ки­ру­ет уда­лён­ный root-логин.

Запу­сти­те этот сценарий:

sudo mysql_secure_installation

После это­го сце­на­рий задаст вам ряд вопро­сов. Сна­ча­ла он пред­ло­жит настро­ить Validate Password Plugin, кото­рый про­ве­ря­ет надеж­ность ваше­го пароля.

Если вы реши­те настро­ить Validate Password Plugin, сце­на­рий пред­ло­жит выбрать уро­вень вали­да­ции паро­ля. Наи­выс­ший уро­вень мож­но вклю­чить, нажав 2; при этом ваш пароль дол­жен будет вклю­чать мини­мум 8 сим­во­лов, сре­ди кото­рых долж­ны быть бук­вы в верх­нем и ниж­нем реги­стре, циф­ры и спе­ци­аль­ные символы.

Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

После Validate Password Plugin сце­на­рий пред­ло­жит выбрать root-пароль MySQL. Вве­ди­те надеж­ный пароль и под­твер­ди­те его:

Please set the password for root here.
New password:
Re-enter new password:

Если вы вклю­чи­ли Validate Password Plugin, сце­на­рий оце­нит слож­ность ваше­го паро­ля соглас­но выбран­но­му уров­ню. После это­го сце­на­рий уточ­нит, хоти­те ли вы оста­вить этот пароль или выбрать новый. Что­бы про­дол­жить рабо­ту, не меняя пароль, нажми­те у:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

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

Теперь ваш экзем­пляр MySQL исполь­зу­ет без­опас­ные пара­мет­ры. Оста­лось убе­дить­ся, что MySQL рабо­та­ет долж­ным образом.

3: Тестирование MySQL

Что­бы про­ве­рить рабо­ту вашей СУБД, попро­буй­те под­клю­чить­ся к MySQL с помо­щью инстру­мен­та mysqladmin. Это кли­ент, пред­на­зна­чен­ный для запус­ка команд администрирования.

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

mysqladmin -u root -p version

Эта коман­да вернет:

mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
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.17
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/lib/mysql/mysql.sock
Uptime:         2 hours 52 min 37 sec
Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

Если коман­да выве­ла на экран такой резуль­тат, зна­чит, уста­нов­ка MySQL про­шла успешно.

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

mysql -u root -p

Как и преды­ду­щая коман­да mysqladmin, эта коман­да вклю­ча­ет флаг –u, кото­рый поз­во­ля­ет ука­зать поль­зо­ва­те­ля, с помо­щью кото­ро­го вы хоти­те под­клю­чить­ся (в дан­ном слу­чае это root), и флаг –p, кото­рый запра­ши­ва­ет пароль это­го пользователя.

Вве­ди­те свой пароль, после чего ваша команд­ная стро­ка изменится:

mysql>