Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd:mysqlnd nie może połączyć się z MySQL 4.1+ przy użyciu starego niezabezpieczonego uwierzytelniania

  • Usuń lub skomentuj stare_hasło =1 w my.cnf

Uruchom ponownie MySQL. Jeśli tego nie zrobisz, MySQL będzie nadal używał starego formatu haseł, co oznacza, że ​​nie możesz zaktualizować haseł za pomocą wbudowanej funkcji mieszającej PASSWORD().

Stare skróty hasła mają 16 znaków, nowe 41 znaków.

  • Połącz się z bazą danych i uruchom następujące zapytanie:

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

To pokaże Ci, które hasła są w starym formacie, np.:

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

Zwróć uwagę, że każdy użytkownik może mieć wiele wierszy (po jednym dla każdej innej specyfikacji hosta).

Aby zaktualizować hasło dla każdego użytkownika, wykonaj następujące czynności:

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

Wreszcie, opróżnij uprawnienia:

FLUSH PRIVILEGES;

Źródło:Jak naprawić błąd „mysqlnd nie może połączyć się z MySQL 4.1+ przy użyciu starego uwierzytelniania” w PHP5.3



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pojawia się język arabski w php/mysql ???? znaki zapytania w html

  2. Obiekt nie może zostać przekonwertowany na ciąg w MySQLi PHP

  3. Co to jest indeks pełnotekstowy i kiedy należy go używać?

  4. Jak sprawdzić duplikaty w tabeli mysql w wielu kolumnach?

  5. Czy ograniczenie UNIQUE automatycznie tworzy INDEKS w polu (polach)?