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


135

Uso il seguente comando:

mysql -u root -h 127.0.0.1 -p

e il messaggio di errore è:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

Chi può aiutarmi a risolverlo?


3
Il demone mysql è in esecuzione? Hai un firewall? Puoi telnet per mysql la porta predefinita è 306 quindi - telnet localhost 3306
mmmmmm

il demone mysql è in esecuzione. Sono sicuro.
Charlie Epps,

1
Sono solo io o se ci si connette al server mysql locale non è necessario specificare l'host, ad esempio mysql -u root -p dovrebbe funzionare?
RMcLeod,

solo per essere sicuro, stai provando a connetterti al server db localmente?
John Kane,

Ho appena installato mysql su ubuntu-12.04.2. La versione è 14.14 Distrib 5.5.52, per debian-linux-gnu (x86_64) usando readline 6.2, la sua configurazione predefinita non contiene 'skip-networking'. Quindi non dovresti riscontrare l'errore con questa versione.

Risposte:


220

Se si utilizza ubuntu, è necessario attenersi alla seguente procedura per evitare questo errore (se non è abilitata la replica):

  1. eseguire il comando vim /etc/mysql/my.cnf
  2. commentare bind-address = 127.0.0.1usando il simbolo #
  3. riavvia il tuo server mysql una volta.

Aggiornare

Nel passaggio 1, se non riesci a trovare bind-addressnel my.cnffile, cercalo nel /etc/mysql/mysql.conf.d/mysqld.cnffile.

Aggiornamento in caso di replica MySQL abilitata

Prova a connettere il server MySQL su IPcui è associato il server MySQL in "my.cnf instead oflocalhost o 127.0.0.1".


8
Grazie!!! Ho cercato di capirlo da molto tempo! Ho commentato quella riga, salvato il file e quindi eseguito service mysql restart. E ora funziona!
Ryan,

Nel mio caso, avevo l'indirizzo del server invece di 127.0.0.1 per bind-address. Se questo è il tuo caso, dovrai commentarlo anche tu.
Vlad Schnakovszki,

4
Non v'è bind-address = 127.0.0.1in/etc/mysql/my.cnf
RegarBoy

6
@developer, ho trovato il mio qui: /etc/mysql/mysql.conf.d/mysqld.cnf
una volta il

Ho cambiato il bind-address = <ip del server principale>, ma non riesco a riavviare mysql.
Avi Kehat,

14

Prova localhostinvece di 127.0.0.1connetterti o nel tuo connection-config. Ha funzionato per me su un server Debian Squeeze


Cordiali saluti, se si specifica localhost, che dice a Mysql di connettersi tramite il socket unix (/var/run/mysqld/mysqld.sock su ubuntu) anziché tramite un socket TCP.
Duke,

8

Questo accade quando si dimentica di avviare il database prima di connettersi ad esso:

mysql.server start

poi

mysql -u root -p -h 127.0.0.1

nel terminale su Mac e Linux. Credo che sia lo stesso in Windows CMD ma non ne sono sicuro.
Henry,

Ho dovuto avviare il server MySQL utilizzando sudo service mysqld startnella mia istanza AWS EC2 con MySQL Community Server.
harshainfo,

6

Nel mio caso (connessione remota) ho aiutato a disattivare il firewall sul server.

service iptables stop

@ram Probabilmente stai usando qualche altro firewall. O il tuo problema non è affatto un firewall. Controlla la documentazione per la tua distribuzione Linux.
Bunyk,

1
@ram tryservice firewalld stop
Maxim Mazurok,

1
MySQL funziona in genere sulla porta 3306, quindi aggiungilo al tuo firewall
kurdtpage

6

Questo problema può verificarsi perché il server MySQL non è installato e in esecuzione. Per fare ciò avviare il prompt dei comandi come amministratore e immettere il comando:

"C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin\mysqld" --install

Se viene visualizzato il messaggio "Servizio installato correttamente", è necessario avviare il servizio MySQL. Per fare ciò: vai alla finestra Servizi (Task Manager -> Servizi -> Apri servizi) Cerca MySQL e avvialo dalla barra di navigazione in alto. Quindi se provi ad aprire mysql.exe funzionerà.


2
Un piccolo errore, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" e poi mysqld --install. Inoltre, il numero del server dipende dal download.
Dejazmach,

In questo modo risolto il mio problema
Steffi Keran Rani J

6

guarda il my.cnffile, se contiene una [client]sezione, ed portè diverso dalla porta di ascolto reale (impostazione predefinita 3306), devi connettere il server con un parametro esplicito -P 3306, ad es.

mysql -u root -h 127.0.0.1 -p -P 3306


dove posso cercare my.cnf. non è lì nel server Wamp, nel mio laptop
Deepak Keynes

Su Windows, di solito chiama "my.ini"
Yu Jiaao

Per me il problema era il porto. Grazie
Chandra Eskay il

0

È necessario modificare il parametro bind-address in 127.0.0.1 nel file di configurazione mysql (my.ini o my.cnf) o utilizzare quello che è definito lì.

Se il problema persiste, è necessario verificare che il servizio mysql sia effettivamente in esecuzione.


1
Ho aggiunto la riga "bind-address = 127.0.0.1" al file my.cnf. Ma non funziona
Charlie Epps,

2
Se questa linea è presente, mysql ascolterà SOLO l'indirizzo elencato. Per abilitare l'accesso remoto, è necessario RIMUOVERE questa linea. Essere consapevoli delle implicazioni di sicurezza che ciò ha.
webkraller,

l'aggiunta bind-address =127.0.0.1in my.cnf disabilita la connessione remota al DB. Quindi, anche se funzionerebbe (cosa che non lo è), non è una buona soluzione.
Nir Alfasi,

L'indirizzo bind deve essere 0.0.0.0 a meno che non si desideri che qualcun altro si connetta.
Marchese di Lorne,

0

Nel caso in cui si stia eseguendo una porta non predefinita, è possibile provare a utilizzare lo è --port=<port num> fornito--skip-networkingnot enabled.


0

Ho solo questo problema .... in esecuzione su Win7 e server WAMP ... dopo aver letto questo

Trovato che Antivirus Firewall ha causato il problema.


0

Stavo anche affrontando lo stesso problema. Quanto segue mi ha aiutato a risolvere il problema vai al pannello di controllo-> Strumenti di amministrazione -> servizi all'interno di questo vedrai sicuramente il servizio MySQL: fai clic con il pulsante destro del mouse e dì avvio (forza avvio).


0

Per gli utenti Docker : quando si tenta di connettere sql locale utilizzandomysql -u root -h 127.0.0.1 -pe il database è in esecuzione sulcontenitore Docker , assicurarsi che il servizio mysql sia attivo e funzionante (verificare l'utilizzodocker pse verificare anche di trovarsi nella porta corretta), se il contenitore è in basso si verificherà un errore di connessione.

La migliore pratica è quella di impostare l'ip /etc/hostssul tuo computer:

127.0.0.1 db.local

e eseguendolo mysql -u root -h db.local -p


0

Prova a non spegnere iptables e apri la porta 3306.

sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

o sudo ufw allow 3306se usi ufw.

controlla: netstat -lnp | grep mysqldovresti ottenere sth così:

cp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      2048/mysqld         
tcp6       0      0 :::33060                :::*                    LISTEN      2048/mysqld         
unix  2      [ ACC ]     STREAM     LISTENING     514961   2048/mysqld          /var/run/mysqld/mysqld.sock
unix  2      [ ACC ]     STREAM     LISTENING     514987   2048/mysqld          /var/run/mysqld/mysqlx.sock

se hai null allora elimina # before port = 3306 nel file cnf.


0

Assicurati che il tuo server MySql sia in esecuzione su localhost.

Su Linux

Per verificare se il server MySql è in esecuzione:

sudo service mysql status

Per eseguire il server MySql:

sudo service mysql start

Su Windows

Per verificare se il server MySql è in esecuzione:

C:\Windows\system32>net start

Se MySql non è presente nell'elenco, è necessario avviare / eseguire MySql.

Per eseguire il server MySql:

C:\Windows\system32>net start mysql

Spero che questo ti aiuti.


-1

Ho cambiato la directory di installazione al momento della reinstallazione e ha funzionato.


-2

ho appena riavviato il mio server mysql e il problema risolto in windows net ferma MySQL quindi net start MySQl ubuntu linux sudo service avvia mysql

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.