Akun MySQL yang Anda gunakan mungkin memiliki sandi lama (hash) sepanjang 16 karakter.
Anda dapat mengujinya dengan klien MySQL (seperti HeidiSQL, klien konsol MySQL, atau klien lainnya) dan akun yang memiliki akses ke mysql
.user
meja. Jika bidang Kata Sandi berisi 16 karakter, itu adalah kata sandi lama dan mysqlnd
tidak dapat menggunakannya untuk terhubung ke server MySQL.
Anda dapat mengatur kata sandi baru untuk pengguna tersebut dengan
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
lihat dev_mysql_set_password
edit:
Anda juga harus memeriksa apakah server disetel ke gunakan/buat kata sandi lama secara default
.
edit2:
Silakan jalankan kueri
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='username'
di server 5.0.22 (salah satu yang "gagal"). Ganti username
oleh akun yang Anda gunakan di mysql_connect().
Apa yang dikembalikan?