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