Mysql
 sql >> Database >  >> RDS >> Mysql

Le connessioni mySQL remote non possono connettersi a MySQL 4.1+ utilizzando il vecchio errore di autenticazione non sicuro di XAMPP

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.

  1. individuare il file di configurazione per il server MySQL chiamato my.cnf . Ho trovato il mio su /etc/my.cnf . Puoi modificarlo con sudo nano /etc/my.cnf

  2. Cerca una riga che dica old_passwords=1 e cambialo in old_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

  3. 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

  4. Ora dobbiamo effettivamente modificare il nostro user tabella all'interno di mysql. Quindi apri una shell interattiva su mysql (sul server puoi digitare mysql -uYourRootUsername -pYourRootPassword )

  5. 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

  6. 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';

  7. 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!