Mysql
 sql >> база данни >  >> RDS >> Mysql

Грешка:mysqlnd не може да се свърже с MySQL 4.1+, използвайки старата несигурна автентификация

  • Премахнете или коментирайте old_passwords =1 в my.cnf

Рестартирайте MySQL. Ако не го направите, MySQL ще продължи да използва стария формат на паролата, което ще означава, че не можете да надстроите паролите с помощта на вградената функция за хеширане PASSWORD().

Хешовете на старите пароли са 16 знака, новите са 41 знака.

  • Свържете се с базата данни и изпълнете следната заявка:

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

Това ще ви покаже кои пароли са в стария формат, напр.:

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

Забележете тук, че всеки потребител може да има няколко реда (по един за всяка различна спецификация на хост).

За да актуализирате паролата за всеки потребител, изпълнете следното:

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

И накрая, изчистете привилегиите:

FLUSH PRIVILEGES;

Източник:Как да коригирам "mysqlnd не може да се свърже с MySQL 4.1+ чрез старо удостоверяване" на 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. Заобиколно решение в mysql за частичен индекс или филтриран индекс?

  2. как да разбера дали колоната е първичен ключ с помощта на mysqli?

  3. Как да намеря най-голямата таблица в MySQL база данни?

  4. Използвайте LIMIT, за да разделите резултатите в MySQL заявка

  5. Съхранение на IP адрес в MySQL база данни с помощта на PHP