Ricerca nel sito web

Correzione: ERRORE 2003 (HY000): impossibile connettersi al server MySQL su "127.0.0.1" (111)


Questo tutorial ha lo scopo di spiegare i passaggi necessari per risolvere "ERRORE 2003 (HY000): impossibile connettersi al server MySQL su '127.0.0.1' (111)" che potrebbe verificarsi quando si tenta di accedere al server del database MySQL.

Prima di procedere oltre, se sei un utente Linux nuovo a MySQL/MariaDB, allora potresti prendere in considerazione l'apprendimento di MySQL/MariaDB per principianti – Parte 1 e 20 Comandi MySQL (Mysqladmin) per l'amministrazione di database in Anche Linux.

D'altra parte, se sei già un utente MySQL intermedio/esperto, puoi padroneggiare questi 15 utili suggerimenti per la regolazione e l'ottimizzazione delle prestazioni di MySQL/MariaDB.

Nota: per questo tutorial, si presuppone che tu abbia già installato il server di database mysql.

Tornando al punto focale, quali sono alcune delle possibili cause di questo errore?

  1. Errore di rete, soprattutto se il server del database MySQL è in esecuzione su un host remoto.
  2. Nessun server MySQL è in esecuzione sull'host menzionato.
  3. Il firewall blocca la connessione TCP-IP o altri motivi correlati.

Di seguito sono riportati i passaggi essenziali per affrontarlo.

1. Se il server database si trova su un computer remoto, prova a testare la connettività client-server utilizzando il comando ping, ad esempio:

ping server_ip_address

Una volta stabilita la connettività, utilizzare il comando ps riportato di seguito che mostra informazioni su una selezione dei processi attivi, insieme a un comando pipe e grep, per verificare che il demone mysql sia in esecuzione sul tuo sistema.

ps -Af | grep mysqld

dove l'opzione:

  1. -A – attiva la selezione di tutti i processi
  2. -f – abilita l'elenco del formato completo

Se non viene visualizzato alcun output dal comando precedente, avviare il servizio mysql come segue:

sudo systemctl start mysql.service
sudo systemctl start mariadb.service
OR
sudo /etc/init.d/mysqld start

Dopo aver avviato il servizio mysql, prova ad accedere al server del database:

mysql -u username -p -h host_address  

2. Se ricevi ancora lo stesso errore, determina la porta (l'impostazione predefinita è 3306) su cui è in ascolto il demone mysql eseguendo il comando netstat.

netstat -lnp | grep mysql

dove le opzioni:

  1. -l – mostra le porte di ascolto
  2. -n – abilita la visualizzazione di indirizzi numerici
  3. -p – mostra il PID e il nome del programma proprietario del socket

Pertanto utilizza l'opzione -P per specificare la porta che vedi dall'output sopra mentre accedi al server del database:

mysql -u username -p -h host_address -P port

3. Se tutti i comandi precedenti vengono eseguiti correttamente, ma continui a visualizzare l'errore, apri il file di configurazione mysql.

vi /etc/mysql/my.cnf
OR
vi /etc/mysql/mysql.conf.d/mysqld.cnf 

Cerca la riga seguente e commentala utilizzando il carattere #:

bind-address = 127.0.0.1 

Salva il file ed esci, quindi riavvia il servizio mysql in questo modo:

sudo systemctl start mysql.service
sudo systemctl start mariadb.service
OR
sudo /etc/init.d/mysqld start

Tuttavia, se hai firewallD o Iptables in esecuzione, prova a rivedere i servizi firewall e ad aprire la porta mysql, presupponendo che sia il firewall a bloccare le connessioni TCP-IP al tuo server mysql.

È tutto! Conosci altri metodi o hai suggerimenti per risolvere l'errore di connessione MySQL sopra? Fatecelo sapere lasciando un commento tramite il modulo di feedback qui sotto.