Ik ben niet echt duidelijk waarom dit een probleem werd met mijn XAMPP-installatie, aangezien ik ook PHP 5.3.x op de lokale box van de server gebruik en daar geen problemen ondervond. Het heeft echter te maken met mijn mySQL-server die in de versleutelingsmodus "oud wachtwoord" draait. Nieuwere versies van PHP staan dat soort verbindingen niet toe, dus u moet uw mySQL-server bijwerken om de nieuwere wachtwoordcodering te gebruiken. Dit zijn de stappen, ervan uitgaande dat je controle hebt over de mySQL-server. Als je dat niet doet, valt dat buiten het bereik van mijn kennis.
-
zoek het configuratiebestand voor de mysql-server genaamd
my.cnf
. Ik vond de mijne op/etc/my.cnf
. Je kunt het bewerken metsudo nano /etc/my.cnf
-
Zoek naar een regel met de tekst
old_passwords=1
en verander dat inold_passwords=0
. Je hebt de server nu verteld dat de volgende keer dat het wordt uitgevoerd, en het wordt gevraagd om een wachtwoord te coderen met het PASSWORD()-commando, het de nieuwe codering van 41 tekens gebruikt in plaats van de 16-tekens 'oude' stijlcodering -
Nu moet u uw mysql-server / service opnieuw opstarten. YMMV, maar op Fedora was dat gemakkelijk gedaan met
sudo service mysqld restart
. Controleer de instructies van uw besturingssysteem voor het herstarten van de mysql-daemon of -service -
Nu moeten we onze
user
daadwerkelijk bewerken tabel in mysql. Open dus een interactieve shell voor mysql (op de server typ jemysql -uYourRootUsername -pYourRootPassword
) -
Ga naar de
mysql
databank. Dit is de database die alle goede dingen bevat voor serverwerking en authenticatie. U moet root-toegang hebben om met deze database te kunnen werken. Als u een 'toegang geweigerd' krijgt, bent u SOL. Sorry.use mysql;
zal overschakelen naar die database -
Nu willen we de gebruiker bijwerken die je verdriet deed. Uiteindelijk wilt u waarschijnlijk al uw gebruikers bijwerken, maar voor nu concentreren we ons alleen op de gebruiker die de fout heeft veroorzaakt.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
Nu hoeft u mysql alleen maar te vertellen dat het het nieuwe wachtwoord voor authenticatie moet gebruiken wanneer die gebruiker probeert verbinding te maken.
flush privileges;
.
Je zou goed moeten zijn om te gaan!