Mysql пароль Ошибка в PHP - PullRequest
1 голос
/ 16 апреля 2011

Когда я пытаюсь подключиться к удаленному серверу MySQL с моего локального хоста, я получаю эту ошибку:

Could not connect: mysqlnd cannot connect to MySQL 4.1+ using the old insecure
authentication. Please use an administration tool to reset your password with
the command SET PASSWORD = PASSWORD('your_existing_password').
This will store a new, and more
secure, hash value in mysql.user. If this user is used in other scripts executed
by PHP 5.2 or earlier you might need to remove the old-passwords flag from 
your my.cnf file

Любая идея, почему он дает эту ошибку?

Ответы [ 3 ]

4 голосов
/ 16 апреля 2011

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

Драйвер mysqlnd, представленный в PHP 5.3, не поддерживает старый способ аутентификации.

Итак, вам нужно изменить конфигурацию MySQL, чтобы использовать новый, более безопасный способ.
В сообщении об ошибке указывается, как это сделать.

1 голос
/ 18 февраля 2014

это помогло мне

http://www.phpro.org/articles/Database-Connection-Failed-Mysqlnd-Cannot-Connect-To-MySQL.html

быстрое исправление

как пользователь БД

SET SESSION old_passwords=0; 
SET PASSWORD=PASSWORD('my_password');

как администратор

FLUSH PRIVILEGES;

реальное исправление

откройте файл my.conf и закомментируйте следующую строку

old_passwords=1

Перезагрузите MySQL. это гарантирует, что MySQL никогда не будет использовать старые пароли снова.

как пользователь БД

SET PASSWORD=PASSWORD('my_password');

как администратор

FLUSH PRIVILEGES;
0 голосов
/ 16 апреля 2011

Кажется, проблема при запуске кода PHP <= 5.2 в PHP 5.3+: <a href="http://forums.mysql.com/read.php?52,403493,411125#msg-411125" rel="nofollow">http://forums.mysql.com/read.php?52,403493,411125#msg-411125

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...