Mir ist nicht wirklich klar, warum dies bei meiner XAMPP-Installation zu einem Problem wurde, da ich auch PHP 5.3.x auf der lokalen Box des Servers ausführe und diese Probleme dort nicht aufgetreten sind. Es hat jedoch damit zu tun, dass mein mySQL-Server im Verschlüsselungsmodus "altes Passwort" läuft. Neuere Versionen von PHP erlauben diese Art von Verbindungen nicht, daher müssen Sie Ihren mySQL-Server aktualisieren, um die neuere Passwortverschlüsselung zu verwenden. Hier sind die Schritte, vorausgesetzt, Sie haben die Kontrolle über den mySQL-Server. Wenn nicht, entzieht sich das meiner Kenntnis.
-
Suchen Sie die Konfigurationsdatei für den MySQL-Server mit dem Namen
my.cnf
. Ich habe meine unter/etc/my.cnf
gefunden . Sie können es mitsudo nano /etc/my.cnf
bearbeiten -
Suchen Sie nach einer Zeile mit der Aufschrift
old_passwords=1
und ändern Sie das zuold_passwords=0
. Sie haben dem Server jetzt mitgeteilt, dass er beim nächsten Start und der Aufforderung, ein Passwort mit dem Befehl PASSWORD() zu verschlüsseln, die neue 41-Zeichen-Verschlüsselung anstelle der 16-Zeichen-Verschlüsselung im "alten" Stil verwendet. -
Jetzt müssen Sie Ihren MySQL-Server / -Dienst neu starten. YMMV, aber auf Fedora ging das ganz einfach mit
sudo service mysqld restart
. Überprüfen Sie die Anweisungen Ihres Betriebssystems zum Neustarten des mysql-Daemons oder -Dienstes -
Jetzt müssen wir unseren
user
tatsächlich bearbeiten Tabelle in mysql. Öffnen Sie also eine interaktive Shell für mysql (auf dem Server können Siemysql -uYourRootUsername -pYourRootPassword
eingeben ) -
Wechseln Sie zu
mysql
Datenbank. Dies ist die Datenbank, die all die guten Dinge für den Serverbetrieb und die Authentifizierung enthält. Sie müssen über Root-Zugriff verfügen, um mit dieser Datenbank arbeiten zu können. Wenn Sie „Zugriff verweigert“ erhalten, sind Sie SOL. Es tut uns leid.use mysql;
wechselt zu dieser Datenbank -
Jetzt möchten wir den Benutzer aktualisieren, der Ihnen Kummer bereitet hat. Letztendlich möchten Sie wahrscheinlich alle Ihre Benutzer aktualisieren, aber im Moment konzentrieren wir uns nur auf den Benutzer, der den Fehler ausgelöst hat.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
Jetzt müssen Sie mysql nur noch anweisen, das neue Passwort für die Authentifizierung zu verwenden, wenn dieser Benutzer versucht, eine Verbindung herzustellen.
flush privileges;
.
Du solltest startklar sein!