2015-10-22 10 views
12

Ich weiß, dass eine Menge Fragen mit der gleichen Sorge wie meine aufgeworfen wurden, aber ich hoffe, Sie können mir helfen, eine andere Lösung dafür zu finden.Konnte keine Verbindung zu MySQL 4.1 + mit alten unsicheren Authentifizierung

Wir verwenden Symfony 2.5.10, PHP 5.4.44 und MySQL 4.1.20 für unser Projekt.

Jedes Mal, wenn ich versuche, an das System anzumelden oder eine Handlung, die die Verbindung zur Datenbank betrifft (zB das Hinzufügen neuer Benutzer FOS-Befehle), erhalte ich diesen Fehler:

SQLSTATE[HY000] [2000] 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

Wir haben versucht, bereits Einstellung old_passwords in my.cnf auf 0, mysql neu starten, ein neues Passwort für den Benutzer mysql setzen und mysql erneut starten, aber immer noch das gleiche. Und wenn wir laufen diese in dem Abfragefenster:

SELECT user, Length(Password) FROM mysql.user; 

es zeigt immer noch 16 als die Länge des Passwortes des Benutzers wir verwenden. Und auch beim Überprüfen der MySQL-Servervariablen und -einstellungen lautet old passwordsON (obwohl wir in my.cnf bereits altes_Passwort auf 0 gesetzt haben).

Was könnte daran falsch sein? Ich würde deine Hilfe sehr schätzen.

Aktualisierung: In der Zwischenzeit entfernen wir das Kennwort des Datenbankbenutzers, damit wir auf die Datenbank zugreifen können. Aber ich suche immer noch nach anderen Lösungen, da diese Lösungen, die ich im Internet gefunden habe (wie das Entfernen oder Auskommentieren von old_passwords=1 in my.cnf, das Setzen von alten Passwörtern auf 0 und das Setzen eines neuen Passworts und dann Neustart), für mich nicht funktionierten.

Ein weiteres Update: üblicherweise wäre die Lösung für dieses Problem old_passwords off in mysql Einstellung aber dann, wie in den PHP documentation erwähnt,

the new mysqlnd library does not read mysql configuration files (my.cnf/my.ini).

Damit old_passwords in Einstellung 0 bedeutet das in my.cnf hat keine Verwendung? Ich habe immer noch keine Lösung für dieses Problem gefunden.

Benötigen wir ein Upgrade in einer der verwendeten Plattformen? Vielen Dank im Voraus für die Hilfe.

+0

möglich, ein Duplikat http://stackoverflow.com/questions/1575807/cannot-connect-to-mysql-4-1-using- alt-authentication – Stafox

+0

Haben Sie 'FLUSH PRIVILEGES;' ausgeführt? – Stafox

+0

Bitte beachten Sie http://StackOverflow.com/Questions/1575807/cannot-connect-to-mysql-4-1-User-old-Authentication –

Antwort

2

Bitte versuchen Sie diese Lösung

http://laravel.io/forum/04-16-2014-solving-mysqlnd-cannot-connect-to-mysql-41

Gemäß der Lösung, die Sie brauchen nur das Kennwort erneut einstellen und festlegen, dass sie im neuen Format gespeichert werden.

mysql> SET @@session.old_passwords = 0; 
Query OK, 0 rows affected (0.00 sec) 
SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('existingpass'); 
Query OK, 1 rows affected (0.00 sec); 
+0

Ich habe versucht Dies hat aber immer noch die selbe Ausgabe. 'SQLSTATE [HY000] [2000] mysqlnd kann keine Verbindung zu MySQL 4.1 + herstellen, indem es die alte unsichere Authentisierung benutzt ...' – User122113

3

"SET PASSWORD" ist in MySQL Server 5.7.6 veraltet.

Die Syntax unter 5.7.6 gefolgt von Servern werden soll,

SET PASSWORD [FOR user] = password_option 
password_option: { 
    PASSWORD('auth_string') 
    | OLD_PASSWORD('auth_string') 
    | 'hash_string' 
} 

Die Syntax für Server 5.7 folgen.6 und höher ist,

SET PASSWORD [FOR user] = password_option 
password_option: { 
    PASSWORD('auth_string') 
    | 'auth_string' 
} 

Auch Refe->http://dev.mysql.com/doc/refman/5.7/en/set-password.html

+0

Sie verwenden MySQL 4.1.20 nicht MySQL 5.7.6, so sollte es Arbeit;) – tobiinformatik

+0

Ich bekomme Fehler mit der SQL-Syntax. :( – User122113