Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Mit alter Authentifizierung kann keine Verbindung zu MySQL 4.1+ hergestellt werden

Bearbeiten:Dies gilt nur, wenn Sie die Kontrolle über den MySQL-Server haben ... wenn Sie nicht einen Blick auf Mysql-Passwort-Hashing-Methode alt vs. neu

Prüfen Sie zuerst mit der SQL-Abfrage

SHOW VARIABLES LIKE 'old_passwords'

(im MySQL-Befehlszeilenclient HeidiSQL oder welches Frontend Sie auch immer mögen), ob der Server standardmäßig auf die Verwendung des alten Passwortschemas eingestellt ist. Wenn dies old_passwords,Off zurückgibt Sie haben nur zufällig alte Passworteinträge im user Tisch. Der MySQL-Server verwendet für diese Konten die alte Authentifizierungsroutine. Sie können einfach ein neues Passwort für das Konto festlegen und die neue Routine wird verwendet.

Sie können überprüfen, welche Routine verwendet wird, indem Sie einen Blick auf die mysql.user werfen Tabelle (mit einem Konto, das Zugriff auf diese Tabelle hat)

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Dies gibt 16 zurück für Konten mit alten Passwörtern und 41 für Konten mit neuen Passwörtern (und 0 für Konten ohne Passwort, sollten Sie sich auch darum kümmern).
Entweder verwenden Sie die Benutzerverwaltungstools des MySQL-Frontends (falls vorhanden) oder

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(ersetzen Sie User und Host mit den Werten, die Sie aus der vorherigen Abfrage erhalten haben.) Überprüfen Sie dann erneut die Länge des Passworts. Es sollte 41 sein now und Ihr Client (z. B. mysqlnd) sollte sich mit dem Server verbinden können.

siehe auch die MySQL-Dokumentation:* 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