- Verwijder of becommentarieer old_passwords =1 in my.cnf
Start MySQL opnieuw. Als u dat niet doet, blijft MySQL het oude wachtwoordformaat gebruiken, wat betekent dat u de wachtwoorden niet kunt upgraden met de ingebouwde hashfunctie PASSWORD().
De oude wachtwoord-hashes zijn 16 tekens, de nieuwe zijn 41 tekens.
-
Maak verbinding met de database en voer de volgende query uit:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Dit laat u zien welke wachtwoorden in het oude formaat zijn, bijvoorbeeld:
+----------+--------------------+ | user | Length(`Password`) | +----------+--------------------+ | root | 41 | | root | 16 | | user2 | 16 | | user2 | 16 | +----------+--------------------+
Merk op dat elke gebruiker meerdere rijen kan hebben (één voor elke verschillende hostspecificatie).
Voer het volgende uit om het wachtwoord voor elke gebruiker bij te werken:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Spoel tot slot de rechten:
FLUSH PRIVILEGES;
Bron:Hoe op te lossen "mysqlnd kan geen verbinding maken met MySQL 4.1+ met oude authenticatie" op PHP5.3