solip.de
Intel Channel Partner
Lancom Reseller

#2000 – mysqlnd cannot connect to MySQL 4.1+ using old authentication

Erstellt von solip am Mittwoch 31. März 2010

Diese Fehlermeldung tritt auf wenn man mit PHP 5.3 versucht auf einen MySQL-Server zuzugreifen und der Account oder der MySQL-Server „old-password“ benutzt. PHP 5.3 benutzt die neue, native MySQL Extension mysqlnd, welche old-password nicht unterstützt.

Wird old-password nicht absichtlich benutzt, so handelt es sich wahrscheinlich um einen alten Account. Das Kennwort muss neu gesetzt werden mittels:

SET PASSWORD FOR 'account'@'localhost' = PASSWORD('passwort');

Damit wird ein neuer Hash erstellt.

Wird old-password absichtlich benutzt (alte Konnektoren), so muss man auf PHP 5.2 zurückgehen. Dort verwendet die MySQL Extension mysql die gewohnten Mechanismen.

Welche Accounts betroffen sind, kann man überprüfen mit:

SELECT Host, User, Password FROM mysql.user;

16 Stellen bei der Password-Spalte = altes Kennwort
41 Stellen bei der Password-Spalte = neues Kennwort

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>