Non sono molto chiaro il motivo per cui questo è diventato un problema nella mia installazione di XAMPP, dal momento che sto eseguendo anche PHP 5.3.x sulla casella locale del server e non ho riscontrato quei problemi lì. Tuttavia, ha a che fare con il server mySQL in esecuzione in modalità di crittografia "vecchia password". Le versioni più recenti di PHP non consentiranno questo tipo di connessioni, quindi è necessario aggiornare il server MySQL per utilizzare la crittografia della password più recente. Ecco i passaggi, supponendo che tu abbia il controllo sul server MySQL. Se non lo fai, non rientra nell'ambito delle mie conoscenze.
-
individuare il file di configurazione per il server MySQL chiamato
my.cnf
. Ho trovato il mio su/etc/my.cnf
. Puoi modificarlo consudo nano /etc/my.cnf
-
Cerca una riga che dica
old_passwords=1
e cambialo inold_passwords=0
. Ora hai detto al server che la prossima volta che verrà eseguito e gli verrà chiesto di crittografare una password utilizzando il comando PASSWORD(), utilizzerà la nuova crittografia a 41 caratteri anziché la crittografia in stile "vecchio" a 16 caratteri -
Ora devi riavviare il tuo server / servizio mysql. YMMV, ma su Fedora è stato fatto facilmente con
sudo service mysqld restart
. Controlla le istruzioni del tuo sistema operativo per riavviare il demone o il servizio mysql -
Ora dobbiamo effettivamente modificare il nostro
user
tabella all'interno di mysql. Quindi apri una shell interattiva su mysql (sul server puoi digitaremysql -uYourRootUsername -pYourRootPassword
) -
Passa a
mysql
Banca dati. Questo è il database che contiene tutte le informazioni utili per il funzionamento e l'autenticazione del server. Devi disporre dell'accesso come root per lavorare con questo database. Se ricevi un "accesso negato" sei SOL. Scusate.use mysql;
passerà a quel database -
Ora vogliamo aggiornare l'utente che ti stava causando dolore. Alla fine probabilmente vorrai aggiornare tutti i tuoi utenti, ma per ora ci stiamo concentrando solo sull'utente che ha generato l'errore.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
Ora devi solo dire a mysql di utilizzare la nuova password per l'autenticazione quando quell'utente tenta di connettersi.
flush privileges;
.
Dovresti essere a posto!