Salve a tutti ho questo problema durante la connessione ad un database esterno :
Io utilizzo la classe PDO per fare tale connessione:codice:SQLSTATE[HY000] [2000] mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file
Il problema deriva dal fatto che il dabase sul quale sto facendo al connesione poggia su di un motore Mysql 4.1 che utilizza un metodo di autenticazione della password diversa da quella attesa dla PHP5.2 che ho istallato invece sulla macchina che tenta di fare la connessione .Codice PHP:public function connect()
{
try
{
$this->db= new PDO('mysql:host='.$this->hostname.';dbname='.$this->databaseName.';port='.$this->port,$this->username, $this->password);
$res['connesso']=true;
}
catch(PDOException $e)
{
$res['connesso']=false;
$res['errore']=$e->getMessage();
}
return $res;
}
Una soluzione trovata sarebbe quella di cambiare la password sul server dove poggia il database eseguendo il seguente comando :
ma io non ho i diritti per eseguire quel comando, quindi dovrei risolvere la questione lato client, qualcuno di voi conosce un modo per fare questo?codice:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');
Grazie


Rispondi quotando