sql >> Databáze >  >> RDS >> Mysql

Nekompatibilita MySQL PHP

Úč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')

viz dev_mysql_set_password

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í?



  1. Oracle dotaz k nalezení všech výskytů znaku v řetězci

  2. Go with SQL Server driver se nemůže úspěšně připojit, přihlášení se nezdařilo

  3. Zjistěte, zda je objekt uživatelsky definovanou tabulkou na serveru SQL pomocí OBJECTPROPERTY()

  4. NEWID() vs NEWSEQUENTIALID() v SQL Server:Jaký je rozdíl?