- 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