Le versioni 4.1 e superiori di mySQL usano un protocollo di autenticazione basato su un algoritmo di hashing della password che risulta essere incompatibile con le vecchie versioni dei client.
Se dopo aver eseguito l’upgrade del server ad una versione >= 4.1 si prova a connettersi allo stesso tramite un vecchio client il processo di autenticazione fallirà producendo il seguente messaggio d’errore:
Per risolvere questo tipo di problema si possono usare le seguenti procedure:codice:shell> mysql Client does not support authentication protocol requested by server; consider upgrading MySQL client
Eseguire l’upgrade di tutti i client per usare la nuova libreria 4.1.1 o superiore;
se non è possibile eseguire l’upgrade dei client usare la funzione OLD_PASSWORD():
o alternativamente:codice:mysql> SET PASSWORD FOR -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
avviare il server mysqld con l’opzione "–old-passwords".codice:mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd') -> WHERE Host = 'some_host' AND User = 'some_user'; mysql> FLUSH PRIVILEGES;
nota: l’estensione "mysql" di php non supporta il nuovo protocollo di autenticazione di mySQL >= 4.1. Se si desidera continuare ad usare php con l’estensione "mysql" è necessario adottare una delle procedure descritte precedentemente.
La nuova estensione "mysqli" invece è pienamente compatibile con il nuovo algoritmo di hashing; non risulta quindi necessario nessun tipo di intervento sulle password.
pagina di riferimento:
http://dev.mysql.com/doc/mysql/en/old-client.html
maggiori info sul nuovo algoritmo di hashing di mySQL:
http://dev.mysql.com/doc/mysql/en/password-hashing.html
info su mysqli:
http://it2.php.net/mysqli