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=1
og æ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
user
tabel i mysql. Så åbn en interaktiv shell til mysql (på serveren kan du skrivemysql -uYourRootUsername -pYourRootPassword
) -
Skift til
mysql
database. 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å!