Salve a tutti ho questo problema durante la connessione ad un database esterno :

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
Io utilizzo la classe PDO per fare tale 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;
    } 
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 .
Una soluzione trovata sarebbe quella di cambiare la password sul server dove poggia il database eseguendo il seguente comando :
codice:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');
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?
Grazie