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.