Устанавливаем MySQL8 на Linux CentOS 7

По умолчанию yum install mysql предложит установить mariadb и к тому же версию 5.5. Но если вам нужен всё-так MySQL и восьмой версии, то вам помогут следующие команды:

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
percona-release setup ps80
yum install percona-server-server
systemctl start mysqld
systemctl enable mysqld


# mysql -V
mysql  Ver 8.0.19-10 for Linux on x86_64 (Percona Server (GPL), Release 10, Revision f446c04)


Пароль root ищем в /var/log/mysqld.log:
cat /var/log/mysqld.log | grep root

2020-05-18T11:50:00.099253Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: jsWdfgbhtxE

Меняем пароль
mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

У вас может возникнуть ошибка при подключении к MySQL из PHP в связи с тем, что в MySQL8 по умолчанию другой плагин авторизации.
Failed to connect to MySQL: (2054) The server requested authentication method unknown to the client
Решается эта проблема указыванием плагина аутентификации mysql_native_password.

ALTER USER 'user_db'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

Можно отключить плагин аутентификации для всех пользователей вызвав mysql_secure_installation, но не стоит этого делать. Не надо root'ом позволять лазить в базу. По умолчанию даже имея пароль рута к базе подключиться из php не удастся. Только с командной строки утилитой mysql. mysql_native_password лучше разрешать только для отдельных пользователей, которым нужно коннектиться к базе из php.

Телеграмм ITSOFT