редактиране:Това важи само ако контролирате MySQL сървъра... ако не сте погледнете Метод за хеширане на парола Mysql стар срещу нов
Първо проверете със SQL заявката
SHOW VARIABLES LIKE 'old_passwords'
(в клиента на командния ред на MySQL, HeidiSQL
или какъвто преден край ви харесва) дали сървърът е настроен да използва старата схема за парола по подразбиране. Ако това върне old_passwords,Off
случайно имате стари записи на пароли в user
маса. MySQL сървърът ще използва старата рутина за удостоверяване за тези акаунти. Можете просто да зададете нова парола за акаунта и новата рутина ще бъде използвана.
Можете да проверите коя рутина ще се използва, като погледнете mysql.user
таблица (с акаунт, който има достъп до тази таблица)
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
Това ще върне 16 за акаунти със стари пароли и 41 за акаунти с нови пароли (и 0 за акаунти без парола, може да искате да се погрижите и за тях).
Или използвайте инструментите за управление на потребителите на предния край на MySQL (ако има такива) или
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;
(заменете User
и Host
със стойностите, които сте получили от предишната заявка.) След това проверете отново дължината на паролата. Трябва да е 41 сега и вашият клиент (например mysqlnd) трябва да може да се свърже със сървъра.
вижте също документацията на MySQL:* http://dev. mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html