sql >> Database teknologi >  >> RDS >> Mysql

Eksterne mySQL-forbindelser kan ikke oprette forbindelse til MySQL 4.1+ ved hjælp af den gamle usikre autentificeringsfejl fra XAMPP

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.

  1. find konfigurationsfilen for mysql-serveren kaldet my.cnf . Jeg fandt min på /etc/my.cnf . Du kan redigere den med sudo nano /etc/my.cnf

  2. Se efter en linje, der siger old_passwords=1 og ændre det til old_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

  3. 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

  4. Nu skal vi faktisk redigere vores user tabel i mysql. Så åbn en interaktiv shell til mysql (på serveren kan du skrive mysql -uYourRootUsername -pYourRootPassword )

  5. 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

  6. 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';

  7. 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å!




  1. Omvendt streng ord for ord ved hjælp af SQL

  2. Når det haster

  3. Fjernelse af standardsporingen – Del 1

  4. Hvad betyder det, når en PostgreSQL-proces er inaktiv i transaktionen?