Ancora passaggio da Mysql 4 a Mysql 5

Oggi non ho nessun “caso reale” ma il caso di ieri mi ha portato alla memoria un’altra noia nel passaggio da Mysql 4 al 5.

Di fatto l’aggiornamento del pacchetto “mysql” include l’aggiornamento sia del server che del client. E qualcosa nel protocollo è cambiato.

Puo capitare (e capita) che php usi il protocollo della versione 4. Non è nulla di cosi grave, l’unico reale problema è l’autenticazione che è cambiata.

Alcuni errori che possono uscire:

Client does not support authentication protocol

Client does not support authentication protocol requested
by server; consider upgrading MySQL client

La soluzione naif, è , come proposto aggiornare il client (quindi php).
Oppure, se non si ha voglia di ritestare tutte le applicazioni fin’ora sviluppate con php4 per via del passaggio a php5,
1) si copia la riga della tabella “mysql.user” corrispondente all’utente da abilitare da un server con la vecchia specifica per le password (Hash corti)
2) la si inserisce nel nuovo database
3) si rinfrescano i privilegi

In questo modo si salta la generazione degli hash lunghi di mysql5.

Un altra soluzione è far partire mysql con l’opzione --old-passwords ma questo preclude la convivenza dei due sistemi

Ulteriori riferimenti :
http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html