Mysql
 sql >> Database >  >> RDS >> Mysql

Errore:mysqlnd non può connettersi a MySQL 4.1+ utilizzando la vecchia autenticazione non sicura

  • Rimuovi o commenta old_passwords =1 in my.cnf

Riavvia MySQL. In caso contrario, MySQL continuerà a utilizzare il vecchio formato della password, il che significa che non è possibile aggiornare le password utilizzando la funzione di hash PASSWORD() incorporata.

Gli hash della vecchia password sono 16 caratteri, quelli nuovi sono 41 caratteri.

  • Connettiti al database ed esegui la seguente query:

    SELECT user, Length(`Password`) FROM  `mysql`.`user`;
    

Questo ti mostrerà quali password sono nel vecchio formato, ad esempio:

+----------+--------------------+
| user     | Length(`Password`) |
+----------+--------------------+
| root     |                 41 |
| root     |                 16 |
| user2    |                 16 |
| user2    |                 16 |
+----------+--------------------+

Nota qui che ogni utente può avere più righe (una per ciascuna specifica host diversa).

Per aggiornare la password per ogni utente, eseguire quanto segue:

UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';

Infine, svuota i privilegi:

FLUSH PRIVILEGES;

Fonte:Come risolvere "mysqlnd non può connettersi a MySQL 4.1+ usando la vecchia autenticazione" su PHP5.3