sql >> Database >  >> RDS >> Mysql

Kan geen verbinding maken met MySQL 4.1+ met oude authenticatie

edit:dit is alleen van toepassing als je de MySQL-server onder controle hebt... als je geen kijkje neemt op Mysql-wachtwoord-hashmethode oud versus nieuw

Controleer eerst met de SQL-query

SHOW VARIABLES LIKE 'old_passwords'

(in de MySQL-opdrachtregelclient, HeidiSQL of welke front-end u ook wilt) of de server standaard is ingesteld om het oude wachtwoordschema te gebruiken. Als dit old_passwords,Off . oplevert je hebt toevallig oude wachtwoorden in de user tafel. De MySQL-server gebruikt de oude authenticatieroutine voor deze accounts. U kunt eenvoudig een nieuw wachtwoord voor het account instellen en de nieuwe routine wordt gebruikt.

U kunt controleren welke routine zal worden gebruikt door een kijkje te nemen in de mysql.user tafel (met een account die toegang heeft tot die tafel)

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user

Dit geeft 16 . terug voor accounts met oude wachtwoorden en 41 voor accounts met nieuwe wachtwoorden (en 0 voor accounts zonder wachtwoord, wilt u daar misschien ook voor zorgen).
Gebruik de gebruikersbeheertools van de MySQL-frontend (als die er zijn) of

SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;

(vervang User en Host met de waarden die u uit de vorige zoekopdracht hebt gekregen.) Controleer vervolgens de lengte van het wachtwoord opnieuw. Het moet 41 . zijn nu en uw client (bijv. mysqlnd) zou verbinding moeten kunnen maken met de server.

zie ook de MySQL-documentatie:* http://dev. mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html



  1. Point-in-Time Recovery van MySQL- en MariaDB-gegevens uitvoeren met ClusterControl

  2. Navigeren door SQL Server-foutlogboeken

  3. Back-up van PostgreSQL met pg_dump en pg_dumpall

  4. SQL Server RAISERROR-instructie met eenvoudige voorbeelden