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%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.
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.
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.
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.
Tags und Links mysql database-connection pdo remote-access