Jeg er ikke rigtig klar over, hvorfor dette blev et problem på min XAMPP-installation, da jeg også kører PHP 5.3.x på serverens lokale boks og ikke oplevede disse problemer der. Det har dog at gøre med, at min mySQL-server kører i "gammel adgangskode"-krypteringstilstand. Nyere versioner af PHP tillader ikke den slags forbindelser, så du skal opdatere din mySQL-server for at bruge den nyere adgangskodekryptering. Her er trinene, forudsat at du har kontrol over mySQL-serveren. Hvis du ikke gør det, falder det uden for rammerne af min viden.
-
find konfigurationsfilen for mysql-serveren kaldet
my.cnf. Jeg fandt min på/etc/my.cnf. Du kan redigere den medsudo nano /etc/my.cnf -
Se efter en linje, der siger
old_passwords=1og ændre det tilold_passwords=0. Du har nu fortalt serveren, at næste gang den køres, og den bliver bedt om at kryptere en adgangskode ved hjælp af PASSWORD()-kommandoen, bruger den den nye 41-tegns kryptering i stedet for den 16-tegns 'gamle' stilkryptering -
Nu skal du genstarte din mysql-server/tjeneste. YMMV, men på Fedora blev det nemt gjort med
sudo service mysqld restart. Tjek dit OS' instruktioner for at genstarte mysql-dæmonen eller tjenesten -
Nu skal vi faktisk redigere vores
usertabel i mysql. Så åbn en interaktiv shell til mysql (på serveren kan du skrivemysql -uYourRootUsername -pYourRootPassword) -
Skift til
mysqldatabase. Dette er databasen, der rummer alle de gode ting til serverdrift og godkendelse. Du skal have root-adgang for at arbejde med denne database. Hvis du får en 'adgang nægtet', er du SOL. Undskyld.use mysql;vil skifte til den database -
Nu vil vi opdatere brugeren, der gav dig sorg. I sidste ende vil du sikkert gerne opdatere alle dine brugere, men indtil videre fokuserer vi kun på den bruger, der kastede fejlen.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME'; -
Nu skal du bare fortælle mysql at bruge den nye adgangskode til godkendelse, når denne bruger forsøger at oprette forbindelse.
flush privileges;.
Du burde være god til at gå!