sql >> Database >  >> RDS >> Mysql

Externe mySQL-verbinding kan geen verbinding maken met MySQL 4.1+ met behulp van de oude onveilige authenticatiefout van XAMPP

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.

  1. zoek het configuratiebestand voor de mysql-server genaamd my.cnf . Ik vond de mijne op /etc/my.cnf . Je kunt het bewerken met sudo nano /etc/my.cnf

  2. Zoek naar een regel met de tekst old_passwords=1 en verander dat in old_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

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

  4. Nu moeten we onze user daadwerkelijk bewerken tabel in mysql. Open dus een interactieve shell voor mysql (op de server typ je mysql -uYourRootUsername -pYourRootPassword )

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

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

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




  1. php:snelste manier om een ​​5-cijferig nummer te genereren dat nog niet in de MySQL db-kolom staat (met een uniek attribuut)

  2. postgresql-poortverwarring 5433 of 5432?

  3. mysql-fout:FOUT 1018 (HY000):Kan de map van '.' niet lezen (fout:13)

  4. Wat is er nieuw in ProxySQL 2.0