Konto MySQL, którego używasz, prawdopodobnie ma stare hasło o długości 16 znaków (hash).
Możesz to przetestować za pomocą klienta MySQL (takiego jak HeidiSQL, klienta konsoli MySQL lub dowolnego innego klienta) i konta, które ma dostęp do mysql
.user
stół. Jeśli pole Hasło zawiera 16 znaków, jest to stare hasło i mysqlnd
nie można go użyć do połączenia z serwerem MySQL.
Możesz ustawić nowe hasło dla tego użytkownika za pomocą
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
zobacz dev_mysql_set_password
edit:
Powinieneś również sprawdzić, czy serwer jest ustawiony na domyślnie używaj/twórz starych haseł
.
edit2:
Proszę uruchomić zapytanie
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='username'
na serwerze 5.0.22 (tym, który "nie działa"). Zastąp username
według konta, którego używasz w mysql_connect().
Co to zwraca?