MySQL, la password hashing
Ogni volta che aggiornare l'installazione di MySQL, assicuratevi di aggiornare tutti i client che lo utilizza.
In alcuni casi, i client che utilizzano una versione precedente alla 4.1 avrà un problema di autenticazione con il database MySQL, se quest'ultimo ha un post versione 4.1.
Il trucco è che dopo 4.1 (cioè 4.11 e alto), MySQL ha cambiato il modo in cui memorizza le password della tabella utenti all'interno del database di sistema mysql.
Gli hash delle password sono ora 41 byte al posto del vecchio 16 byte.
Così, per esempio, se il server MySQL è 5.0, mentre il php-mysql biblioteca è 4.1, le applicazioni web non riuscirà a connettersi al database. In quanto tale, si consiglia di aggiornare il client.
In ogni caso, MySQL offre un modo per cambiare la parte posteriore hash nel vecchio formato. Per l'amor di discussione, considera l'utente in questione è john, e si vuole essere in grado di connettersi tramite dummy password. In questo caso, la connessione al server MySQL dal prompt (SSH e usare 'mysql-u root-p mysql' su linux, o vai al tuo mysql / bin directory windows ed eseguire la query stessa), quindi rilasciare le seguenti query:
aggiornamento del set user Password = OLD_PASSWORD ('dummy') dove utente = 'john';
i privilegi;
la funzione OLD_PASSWORD () genererà il vecchio 16 byte hash. La prima query alla fine aggiornare la password utente per utilizzare questo hash. La seconda query è necessaria per il servizio MySQL a rileggere i privilegi nuovo utente.
PS: se la vostra password di root non funziona, fare riferimento anche alla guida di azzerarlo .
In alternativa, se il database ha molti utenti e non avete tenuto traccia di loro, è possibile utilizzare la seguente query e restituirà i nomi utente che sta utilizzando il nuovo hash
selezionare distinti (utente) da utenti dove LUNGHEZZA (password) = 41!;
