Errore 1045 (28000) accesso negato per utente root localhost (risolto)

Pubblicato: 2023-03-14

"Errore 1045 (28000) accesso negato per l'utente root localhost" è un errore che si verifica comunemente quando si tenta di accedere a MySQL tramite il CMS di WordPress. Tuttavia, questo errore può verificarsi anche in altre situazioni.

L'errore che riscontri suggerisce che l'utente “root” non possiede le autorizzazioni necessarie per accedere al database da localhost. Le ragioni alla base di questo problema possono essere molteplici, tra cui una password errata, un nome utente errato o autorizzazioni inadeguate concesse all'utente.

Ecco alcuni passaggi che puoi eseguire per risolvere questo errore

1. Controlla il nome utente e la password

Assicurati di utilizzare il nome utente e la password corretti. Il nome utente dovrebbe essere "root" e la password dovrebbe essere quella impostata durante il processo di installazione.

Se stai usando WordPress devi controllare il tuo file wp-config.php . Il file si trova nella cartella principale di WordPress.

wp-config.php

Dopo aver aperto il file e provato a modificarlo (Visual Studio Code) avrai questa schermata:

modificare wp-config.php nome utente e password del DB

Controllare DB_USER e DB_PASSWORD se hanno i valori corretti

 /** Database username */ define( 'DB_USER', 'root' );
 /** Database password */ define( 'DB_PASSWORD', 'root' );

Se non sai qual è il tuo nome utente e password per il DB, accedi a cPanel> Database> Mysql e controlla.

come accedere al database mysql con cpanel

Per modificare la password del database di WordPress, segui il tutorial: Cambia la password di WordPress in PHPMyAdmin

2. Verificare se l'utente dispone dei privilegi richiesti

Verificare se l'utente “root” dispone dei privilegi necessari per accedere al database.

Step1: Innanzitutto, devi aprire il tuo terminale e scrivere ssh [email protected]

 ssh [email protected]

Passaggio 2: dopo aver eseguito correttamente l'accesso, annotare questo comando

 mysql -uroot -p

Step3: Dopo aver aggiunto la tua password puoi iniziare ad aggiungere il tuo comando dal prompt di mysql

Passaggio 4: è possibile utilizzare il seguente comando per verificare i privilegi:

 SHOW GRANTS FOR 'root'@'localhost';

Questo ti mostrerà l'elenco dei privilegi che l'utente "root" ha per il server "localhost". Se l'utente non dispone dei privilegi necessari, è possibile concederli utilizzando il seguente comando:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';

Nota: sostituisci "password" con la password che desideri utilizzare.

Per verificare se l'utente dispone dei privilegi richiesti utilizzando phpMyAdmin, attenersi alla seguente procedura:

  1. Accedi al tuo account phpMyAdmin.
  2. Fare clic sulla scheda "Account utente".
  3. Seleziona sull'utente root (o quello a cui vuoi cambiare la password)
  4. Fare clic sul collegamento Modifica privilegi
  5. Qui puoi vedere l'elenco dei privilegi concessi all'utente.
  6. Assicurarsi che all'utente siano stati concessi i privilegi necessari per accedere al database.
  7. Se l'utente non dispone dei privilegi richiesti, è possibile concederli selezionando le caselle di controllo pertinenti e facendo clic sul pulsante "Vai".
  8. Dopo aver concesso i privilegi richiesti, prova ad accedere nuovamente al database per vedere se il problema è stato risolto.
phpmyadmin modifica il link dei privilegi

Le impostazioni nell'area evidenziata dovrebbero essere controllate:

Privilegi utente phpmyadmin

Nota: se non sei in grado di concedere i privilegi necessari tramite phpMyAdmin, potrebbe essere necessario accedere all'interfaccia della riga di comando di MySQL per concedere i privilegi.

3. Controlla lo stato del server MySQL

Assicurati che il server MySQL sia in esecuzione. È possibile controllare lo stato del server eseguendo il seguente comando dopo l'accesso nella shell del server:

 systemctl status mysql

Se il server non è in esecuzione, avvialo utilizzando il seguente comando:

 systemctl start mysql

Per controllare lo stato di Mysql sull'hosting cPanel devi accedere alla tua dashboard di hosting. Un altro modo è contattare direttamente il tuo provider di hosting.

4. Controlla se il server MySQL è in ascolto sulla porta corretta

Assicurati che il server MySQL sia in ascolto sulla porta corretta. La porta predefinita per MySQL è 3306 .

Per verificare se il server MySQL è in ascolto sulla porta corretta, puoi seguire questi passaggi:

1. Apri un terminale o un prompt dei comandi sul tuo server dove è installato MySQL.

2. Connettersi al server MySQL utilizzando il client della riga di comando. Puoi utilizzare il seguente comando, sostituendo username e password con le tue credenziali MySQL effettive:

 mysql -u username -p

3. Una volta connesso al server MySQL, digita il seguente comando per visualizzare il numero di porta su cui è in ascolto il server MySQL:

SHOW VARIABLES LIKE 'port';

Questo comando visualizzerà il numero di porta su cui è in ascolto il server MySQL. Per impostazione predefinita, MySQL è in ascolto sulla porta 3306.

Puoi anche controllare il numero di porta nel file di configurazione di MySQL.

Il file di configurazione si chiama solitamente my.cnf o my.ini e si trova nella directory di installazione di MySQL.

Per trovare la directory di installazione di MySQL, puoi seguire questi passaggi:

1. Apri un terminale o un prompt dei comandi sul tuo server dove è installato MySQL.

2. Digita il seguente comando per verificare se MySQL è installato:

which mysql

Se MySQL è installato, questo comando mostrerà il percorso del file eseguibile mysql altrimenti riceverai un messaggio di errore.

Se MySQL è installato, puoi utilizzare nuovamente il comando which per trovare la directory di installazione. Digita il seguente comando, sostituendo /path/to/mysql con il percorso del file eseguibile mysql :

 which mysql | xargs readlink -f | sed "s|bin/mysql$||"

Questo comando visualizzerà la directory di installazione di MySQL. È possibile utilizzare questa directory per individuare il file di configurazione MySQL ( my.cnf o my.ini ) e altri file e directory MySQL.

In alternativa, se hai accesso al client MySQL, puoi anche eseguire la seguente query per trovare la directory di installazione di MySQL:

 SELECT @@basedir;

Verrà visualizzata la directory di installazione di MySQL.

Puoi anche controllare il file di configurazione di MySQL per verificare il numero di porta su cui MySQL è configurato per l'ascolto. Il file di configurazione si chiama solitamente my.cnf o my.ini e si trova nella directory di installazione di MySQL.

my.cnf e porta sql

Apri il file di configurazione con un editor di testo e cerca il parametro della porta. Il valore di questo parametro specifica il numero di porta su cui MySQL è configurato per l'ascolto.

Se il server MySQL non è in ascolto sulla porta corretta, è possibile modificare il parametro della porta nel file di configurazione e riavviare il server MySQL per applicare le modifiche.

Non dimenticare di riavviare il servizio Mysql se hai cambiato la porta:

 service mysql restart

5. Reimpostare la password di root

Se nessuno dei passaggi precedenti funziona, puoi provare a reimpostare la password di root. Puoi farlo seguendo i passaggi in questo articolo:

https://dev.mysql.com/doc/refman/8.0/en/reimpostazione-permessi.html

Nota: questo metodo richiede l'accesso al file di configurazione di MySQL e la possibilità di riavviare il server MySQL.

Potrebbe interessarti leggere:

Come risolvere l'errore "Installazione non riuscita: impossibile creare la directory" su WordPress

Come risolvere WordPress bloccato in modalità manutenzione (RISOLTO)

Come risolvere "Aggiornamento non riuscito. La risposta non è una risposta JSON valida"

Come risolvere "Errore durante la creazione di una connessione al database"? – 2023