Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kesalahan:mysqlnd tidak dapat terhubung ke MySQL 4.1+ menggunakan otentikasi lama yang tidak aman

  • Hapus atau komentari old_passwords =1 di my.cnf

Mulai ulang MySQL. Jika tidak, MySQL akan tetap menggunakan format kata sandi lama, yang berarti Anda tidak dapat memutakhirkan kata sandi menggunakan fungsi hashing PASSWORD() bawaan.

Kata sandi hash lama 16 karakter, yang baru 41 karakter.

  • Hubungkan ke database, dan jalankan kueri berikut:

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

Ini akan menunjukkan kepada Anda sandi mana dalam format lama, misalnya:

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

Perhatikan di sini bahwa setiap pengguna dapat memiliki beberapa baris (satu untuk setiap spesifikasi host yang berbeda).

Untuk memperbarui kata sandi setiap pengguna, jalankan perintah berikut:

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

Terakhir, flush hak istimewa:

FLUSH PRIVILEGES;

Sumber:Cara memperbaiki "mysqlnd tidak dapat terhubung ke MySQL 4.1+ menggunakan otentikasi lama" di 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 jumlah baris per jam

  2. Pilih kueri dalam dua tabel di MySQL

  3. Ganti NOT IN dengan LEFT JOIN dalam pernyataan SQL

  4. Divisi SQL menggunakan 'tidak ada' di mysql

  5. Masalah Basis Data UTF-8