Das MySQL-Konto, das Sie verwenden, hat wahrscheinlich ein altes 16-stelliges Passwort (Hash).
Sie können das mit einem MySQL-Client (wie HeidiSQL, dem MySQL-Konsolen-Client oder einem anderen Client) und einem Konto mit Zugriff testen zum mysql
.user
Tisch. Wenn das Passwortfeld 16 Zeichen enthält, ist es ein altes Passwort und mysqlnd
kann es nicht verwenden, um sich mit dem MySQL-Server zu verbinden.
Sie können mit
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
siehe dev_mysql_set_password
Bearbeiten:
Sie sollten auch prüfen, ob der Server auf standardmäßig alte Passwörter verwenden/erstellen
.
edit2:
Bitte führen Sie die Abfrage aus
SELECT
Length(`Password`),
Substring(`Password`, 1, 1)
FROM
`mysql`.`user`
WHERE
`user`='username'
auf dem 5.0.22-Server (der "fehlschlägt"). Ersetzen Sie username
nach dem Konto, das Sie in mysql_connect() verwenden.
Was gibt das zurück?