Účet MySQL, který používáte, má pravděpodobně staré heslo dlouhé 16 znaků (hash).
To můžete otestovat pomocí klienta MySQL (jako je HeidiSQL, klient konzoly MySQL nebo jiného klienta) a účtu, který má přístup do mysql
.user
stůl. Pokud pole Heslo obsahuje 16 znaků, jedná se o staré heslo a mysqlnd
nelze jej použít k připojení k serveru MySQL.
Nové heslo pro tohoto uživatele můžete nastavit pomocí
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
edit:
Měli byste také zkontrolovat, zda je server nastaven na používat/vytvářet stará hesla ve výchozím nastavení
.
edit2:
Spusťte dotaz
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='username'
na serveru 5.0.22 (ten, který „selhá“). Nahraďte username
podle účtu, který používáte v mysql_connect().
Co to vrátí?