mysql_connect (): il server ha richiesto un metodo di autenticazione sconosciuto al client [mysql_old_password] in


8

Sto cercando di eseguire PHP 5.4.1 (compilato dal sorgente) ma quando provo a connettermi su mysql ottengo:

Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in

Quando si utilizza PHP 5.3 / 5.2 funziona normalmente. Qualche idea su cosa causi questo problema?


Vedi questa risposta in un'altra domanda: stackoverflow.com/a/50776838/1041047
Robin Qiu

Risposte:


10

Prova a leggere questo: link

MySQL ha introdotto hash password più lunghi nella versione 4.1 (credo) e probabilmente il tuo server li utilizza ancora (verifica la presenza di hash password a 16 byte nella tabella utente mysql). Le versioni più recenti utilizzano hash password più lunghi. Il tuo server supporta entrambi, ma il tuo client (php) sembra supportare solo quelli nuovi in ​​questa versione (e su).

Se è possibile, utilizzare la soluzione dal collegamento nella prima riga e impostare nuovamente la password con il nuovo hash, ma attenzione, se si utilizzano altri client (vecchi) che si basano su password vecchie, la compatibilità potrebbe non funzionare. Prova anche a cercare il supporto per vecchia password per MySQL in PHP, ma non ne sono sicuro.



3

So che questo è un vecchio argomento, ma ho risolto il problema senza dover aggiornare / eseguire il downgrade. Fondamentalmente ho commentato la riga old_passwords = 1 nel mio file my.cnf, ho riavviato mysql, aggiunto / modificato l'utente che alla fine ha ottenuto l'hash 16 byte, quindi sono tornato e ho decommentato la riga old_passwords = 1 e ho riavviato mysql. Quindi in poche parole:

  • commento old_passwords = 1
  • riavvia mysql
  • aggiungi / modifica utente
  • uncomment old_passwords = 1
  • riavvia mysql

Quindi il gioco è fatto: 1 utente usa un nuovo tipo di password, mentre altri utenti hanno i loro vecchi tipi di password. E tutti possono accedere! ;)


1

Molte volte ciò può accadere se il server MYSQL utilizza un vecchio hash della password , modifica la password o aggiorna il server per ottenere l'hash della password più recente che risolve il problema di autenticazione.


1
Ho appena cambiato di nuovo la password dell'utente db, supponendo che MySql avrebbe usato il nuovo hash. Ha funzionato. Non sono state richieste altre modifiche.
eyal_katz,

0

Ho ricevuto un messaggio simile quando ho provato ad aggiornare la mia installazione di mediawiki. Sto usando Netfirms come mio provider di hosting e ho risolto questo accedendo al pannello di controllo, andando nell'area MySQL e cambiando il database che utilizzava Mediawiki. Sono stato quindi in grado di procedere con l'aggiornamento di mediawiki.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.