MySQL-kontot du använder har förmodligen ett gammalt 16 tecken långt lösenord (hash).
Du kan testa det med en MySQL-klient (som HeidiSQL, MySQL-konsolklienten eller någon annan klient) och ett konto som har åtkomst till mysql
.user
tabell. Om lösenordsfältet innehåller 16 tecken är det ett gammalt lösenord och mysqlnd
kan inte använda den för att ansluta till MySQL-servern.
Du kan ställa in ett nytt lösenord för den användaren med
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
edit:
Du bör också kontrollera om servern är inställd på använd/skapa gamla lösenord som standard
.
edit2:
Kör frågan
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='username'
på 5.0.22-servern (den som "misslyckas"). Ersätt username
av kontot du använder i mysql_connect().
Vad returnerar det?