sql >> Databasteknik >  >> RDS >> Mysql

Fjärrstyrda mySQL-anslutningar kan inte ansluta till MySQL 4.1+ med det gamla osäkra autentiseringsfelet från XAMPP

Jag är inte riktigt klar över varför detta blev ett problem på min XAMPP-installation, eftersom jag också kör PHP 5.3.x på serverns lokala box och inte upplevde dessa problem där. Det har dock att göra med att min mySQL-server körs i krypteringsläge "gammalt lösenord". Nyare versioner av PHP tillåter inte den typen av anslutningar, så du måste uppdatera din mySQL-server för att använda den nyare lösenordskrypteringen. Här är stegen, förutsatt att du har kontroll över mySQL-servern. Om du inte gör det, faller det utanför omfattningen av min kunskap.

  1. hitta konfigurationsfilen för mysql-servern som heter my.cnf . Jag hittade min på /etc/my.cnf . Du kan redigera den med sudo nano /etc/my.cnf

  2. Leta efter en rad som säger old_passwords=1 och ändra det till old_passwords=0 . Du har nu berättat för servern att nästa gång den körs, och den ombeds att kryptera ett lösenord med kommandot PASSWORD() använder den den nya 41-teckenskrypteringen snarare än den 16-teckens "gamla" krypteringen

  3. Nu måste du starta om din mysql-server/tjänst. YMMV, men på Fedora gjordes det enkelt med sudo service mysqld restart . Kontrollera ditt operativsystems instruktioner för att starta om mysql-demonen eller tjänsten

  4. Nu måste vi faktiskt redigera vår user tabell i mysql. Så öppna upp ett interaktivt skal till mysql (på servern kan du skriva mysql -uYourRootUsername -pYourRootPassword )

  5. Byt till mysql databas. Detta är databasen som innehåller alla bra saker för serverdrift och autentisering. Du måste ha root-åtkomst för att arbeta med den här databasen. Om du får en "åtkomst nekad" är du SOL. Förlåt. use mysql; kommer att byta till den databasen

  6. Nu vill vi uppdatera användaren som gav dig sorg. I slutändan kommer du förmodligen att vilja uppdatera alla dina användare, men för närvarande fokuserar vi bara på användaren som orsakade felet. update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';

  7. Nu behöver du bara berätta för mysql att använda det nya lösenordet för autentisering när den användaren försöker ansluta. flush privileges; .

Du borde vara bra att gå!




  1. SQL Visa senaste posten i GROUP BY?

  2. Hur kan jag ställa in ett anpassat format för datum och tid i Oracle SQL Developer?

  3. ERD-notationer i datamodellering

  4. Now() utan tidszon