Mysql
 sql >> Database >  >> RDS >> Mysql

Incompatibilità con MySQL PHP

L'account MySQL che stai utilizzando probabilmente ha una vecchia password lunga 16 caratteri (hash).
Puoi verificarla con un client MySQL (come HeidiSQL, il client della console MySQL o qualsiasi altro client) e un account che ha accesso a mysql .user tavolo. Se il campo Password contiene 16 caratteri, è una vecchia password e mysqlnd non può usarlo per connettersi al server MySQL.
Puoi impostare una nuova password per quell'utente con

SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')

vedere dev_mysql_set_password

edit:
Dovresti anche controllare se il server è impostato su usa/crea vecchie password per impostazione predefinita .

edit2:
Esegui la query

SELECT
  Length(`Password`),
  Substring(`Password`, 1, 1)
FROM
  `mysql`.`user`
WHERE
  `user`='username'

sul server 5.0.22 (quello che "non funziona"). Sostituisci username dall'account che stai utilizzando in mysql_connect().
Che cosa restituisce?