MySQL-Remoteverbindung schlägt mit "unbekannter Authentifizierungsmethode" fehl

8

Ich versuche, von meinem lokalen Rechner aus eine Verbindung zum MySQL-Server herzustellen, bekomme aber folgenden Fehler:

%Vor%

Meine lokale MySQL Server Version ist 5.5.27, libmysql - mysqlnd 5.0.10 Die entfernte Version des MySQL-Servers ist 5.5.23, die mysqlnd-Version ist nicht verfügbar.

Ich denke, es ist ein inkompatibles Passwort-Hash-Problem, aber ich weiß nicht, wie ich es lösen soll. Unten ist ein Teil meines Verbindungscodes

%Vor%     
Chibuzo 30.01.2013, 19:57
quelle

4 Antworten

4

Ich habe die Herausforderung gemeistert. Ich fand heraus, dass mein entfernter MySQL-Datenbank-Host immer noch den alten MySQL-Passwort-Hash verwendet, der 16 Byte ist, während mein lokaler Host-Datenbank-Server einen 41-Byte-Passwort-Hash verwendet. Ich habe die folgende Abfrage verwendet, um die Passwortlänge zu finden:

%Vor%

Ich habe meinen Kennwort-Hash für den Datenbankserver des lokalen Hosts in 16 Byte geändert, indem ich die folgende Abfrage ausgeführt habe

%Vor%

Dann habe ich my.ini file bearbeitet und old_password=1 eingestellt, um sicherzustellen, dass beim Neustart des Servers das neue Passwortsystem nicht wiederhergestellt wird. Aber das hat mein Problem nicht gelöst.

Ich habe herausgefunden, dass PHP die Authentifizierung handhabt, da ich PHP s MySQL API verwendet habe, also habe ich auf PHP 5.2.8 heruntergestuft und konnte die Remote-Verbindung erfolgreich herstellen.

Ich hoffe, das hilft jemandem.

    
Chibuzo 10.03.2013, 09:59
quelle
10

Wenn Sie PHP 5.3+ verwenden, könnte eine der Rückwärtsinkompatibilitätsänderungen :

  

Die neue mysqlnd-Bibliothek erfordert die Verwendung des neueren 41-Byte-Passwortformats von MySQL 4.1. Die fortgesetzte Verwendung der alten 16-Byte-Passwörter führt dazu, dass mysql_connect () und ähnliche Funktionen den Fehler ausgeben: "mysqlnd kann keine Verbindung zu MySQL 4.1+ mit alter Authentifizierung herstellen."

Wenn ja, finden Sie unter Ссылка Informationen zur Aktualisierung Ihres Passworts.

    
Michael Robinson 30.01.2013 20:41
quelle
2

Ich stieß auf dasselbe Problem und fand heraus, dass das Problem tatsächlich mit PHP zu tun hatte.

Die Lösung war einfach für mich: Wechseln Sie zu mysqli statt zu PDO. Bei der Verwendung von Zend_Db ist dies so einfach wie das Ändern einer Zeile:

%Vor%

Wird

%Vor%

Aber wenn deine Anwendung nicht die Zend_Db Abstraktionsschicht (oder irgendeine andere Ebene) benutzt, könntest du in Schwierigkeiten geraten.

    
Wouter 09.09.2014 08:11
quelle
1

Ich hatte dieses Problem bei einem Shared-Hosting-Dienst (bluehost.com). Ich habe nur das Passwort des Benutzers borking MySql über die Web-Schnittstelle von Bluehost zurückgesetzt. Ich habe das alte Passwort erneut verwendet, es an der Schnittstelle neu eingegeben und gespeichert und alles war wieder in Ordnung.

    
metatron 14.09.2017 10:40
quelle