mysqli_real_connect() - метод аутентификации неизвестен клиенту - Предупреждения

23 нояб. 2014 г., 20:08:22
Просмотры: 22.8K
Голосов: 1

В моем журнале отладки постоянно появляются следующие предупреждения:

PHP Warning:     mysqli_real_connect(): The server requested authentication method unknown to the client [mysql_old_password] in /wp-includes/wp-db.php on line 1379
PHP Warning:     mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client in /wp-includes/wp-db.php on line 1379
PHP Deprecated:  mysql_connect(): Расширение mysql устарело и будет удалено в будущем: используйте mysqli или PDO instead in /wp-includes/wp-db.php on line 1409

У меня установлена следующая конфигурация:

PHP       - 5.5.6
MYSQL     - 5.5.38
WordPress - 4.0.1

Все мои плагины обновлены, и большинство из них я использовал раньше. Эта проблема возникает только на этом хостинге, поэтому я исключил проблему с плагинами. Я искал решение этой проблемы, но не понимаю, о чем говорится в ответах:

Несовместимость MYSQL PHP

Нужна помощь в настройке разрешений и подключений mysql

Похоже, что какой-то пользователь ввел слишком длинный пароль для хеширования? И если это так, как мне с этим справиться, сбросить пароли всем пользователям? Не могли бы вы объяснить простыми словами, в чем именно заключается проблема?

0
Все ответы на вопрос 1
0

Это не имеет никакого отношения к WordPress или паролям ваших пользователей.

Это означает, что ваш сервер MySQL до сих пор использует устаревший механизм хэширования паролей, который был изменен в MySQL 4.1. Клиент PHP mysqli более новый и не поддерживает старый механизм паролей. Поскольку это вызывает ошибку, WordPress переключается на старый клиент mysql, который поддерживает это, но является устаревшим (это третье сообщение об ошибке, которое вы видите).

Другими словами, "пароль", о котором здесь идет речь, это не пароль WordPress, а пароль, который вы используете для подключения WordPress к вашей базе данных. По сути, это имя пользователя и пароль из файла wp-config.php.

Что вам нужно сделать, так это изменить пароль для самой базы данных на новую версию хэша. Это немного сложно, и если вы не контролируете сервер MySQL, у вас может не быть доступа для этого.

Вы можете попросить вашего хостинг-провайдера отключить old_passwords, но если это общая система баз данных, они вряд ли согласятся это сделать.

Если вы контролируете свой сервер, ознакомьтесь с этим ответом. Обратите внимание, что автор получил ответ задом наперед, объясняя, как включить old_passwords. Вам нужно выполнить тот же базовый процесс, но в обратном направлении, чтобы отключить old_passwords и получить более длинный механизм хэширования вместо короткого.

https://dba.stackexchange.com/questions/33447/connect-error-2054-mysql-old-password-issue-still-not-solved

23 нояб. 2014 г. 22:59:46