sql >> Databáze >  >> RDS >> Mysql

Chyba:mysqlnd se nemůže připojit k MySQL 4.1+ pomocí staré nezabezpečené autentizace

  • Odeberte nebo okomentujte old_passwords =1 v my.cnf

Restartujte MySQL. Pokud tak neučiníte, MySQL bude nadále používat starý formát hesla, což bude znamenat, že hesla nemůžete upgradovat pomocí vestavěné funkce hash PASSWORD().

Staré hash hesla mají 16 znaků, nové mají 41 znaků.

  • Připojte se k databázi a spusťte následující dotaz:

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

To vám ukáže, která hesla jsou ve starém formátu, např.:

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

Všimněte si, že každý uživatel může mít více řádků (jeden pro každou jinou specifikaci hostitele).

Chcete-li aktualizovat heslo pro každého uživatele, spusťte následující:

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

Nakonec vyprázdněte oprávnění:

FLUSH PRIVILEGES;

Zdroj:Jak opravit „mysqlnd se nemůže připojit k MySQL 4.1+ pomocí starého ověřování“ na PHP5.3



  1. unbuffered dotaz s MySQLi?

  2. Žádné výsledky po odstranění mysql ft_stopword_file

  3. Fulltextový dotaz s jedinou uvozovkou

  4. Vkládání dat do více tabulek pomocí jednoho formuláře