solip.de
Intel Channel Partner
Lancom Reseller

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

Erstellt von solip am 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

Abgelegt unter PHP | Keine Kommentare »