PDO Connection Error: SQLSTATE[HY000][2054] Server sent unknown to the client

Переносил сайты со старого сервера и столкнулся с новой версией MySQL 8. Форумы на phpbb не принимали пароль.

Решение

По умолчанию в MySQL 8 кодировка настроена на utf8mb4, что обычно не совместимо со старыми клиентами.

Найдите файл конфигурации MySQL (обычно находится в /etc/my.cnf или /etc/mysql/conf.d/my.cnf) и добавьте настройки, которые упоминаются ниже:

# /etc/mysql/conf.d/my.cnf

[mysqld]

collation-server = utf8_unicode_ci
character-set-server = utf8 

# Otherwise the following exception will be thrown: the server requested authentication method unknown to the client
default_authentication_plugin= mysql_native_password

[client] 
default-character-set=utf8 

[mysql]
default-character-set=utf8

После обновления файла конфигурации MySQL, проверьте авторизацию плагина:

--- Update the authentication plugin of the user e.g for root with the password ---
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourRootPassword';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourRootPassword';
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'yourRootPassword';

--- Then flush the privileges ---
FLUSH PRIVILEGES;

После этого перезагрузите сервис:

sudo service mysql restart

Ещё одно решение:

Нужно понизить версию MySQL сервера с 8 до MySQL 5.7

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *