sql >> Databasteknik >  >> RDS >> Mysql

Kan inte ansluta till MySQL 4.1+ med gammal autentisering

edit:Detta gäller bara om du har kontroll över MySQL-servern... om du inte tittar på Mysql-lösenordshashingmetod gammal vs ny

Kontrollera först med SQL-frågan

SHOW VARIABLES LIKE 'old_passwords'

(i MySQL kommandoradsklient, HeidiSQL eller vilket gränssnitt du vill) om servern är inställd på att använda det gamla lösenordsschemat som standard. Om detta returnerar old_passwords,Off du råkar bara ha gamla lösenordsposter i user tabell. MySQL-servern kommer att använda den gamla autentiseringsrutinen för dessa konton. Du kan helt enkelt ställa in ett nytt lösenord för kontot och den nya rutinen kommer att användas.

Du kan kontrollera vilken rutin som kommer att användas genom att ta en titt på mysql.user tabell (med ett konto som har åtkomst till den tabellen)

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

Detta kommer att returnera 16 för konton med gamla lösenord och 41 för konton med nya lösenord (och 0 för konton utan lösenord alls, du kanske vill ta hand om dem också).
Använd antingen användarhanteringsverktygen i MySQL-gränssnittet (om det finns några) eller

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

(ersätt User och Host med de värden du fick från föregående fråga.) Kontrollera sedan längden på lösenordet igen. Det ska vara 41 nu och din klient (t.ex. mysqlnd) ska kunna ansluta till servern.

se även MySQL-dokumentationen:* 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. 2 funktioner som returnerar sekunderna från ett Datetime-värde i Oracle

  2. Kan inte kompilera GI 12.1.0.2 och segmenteringsfel

  3. Hur lagrar och hämtar man en byte-array (bilddata) till och från en SQLite-databas?

  4. Bästa dataarkivet för miljarder rader