sql >> Database >  >> RDS >> Mysql

Fout:mysqlnd kan geen verbinding maken met MySQL 4.1+ met de oude onveilige authenticatie

  • 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



  1. MySQL Fatale fout:Kan privilegetabellen niet openen en vergrendelen:Onjuist bestandsformaat 'gebruiker'

  2. Is er een manier om te vragen of het matrixveld een bepaalde waarde in Doctrine2 bevat?

  3. Kan een MySQL-opgeslagen procedure niet uitvoeren vanuit Java

  4. Heb geen databasevergrendeling! op android