ERROR 2003 (HY000): no se puede conectar al servidor MySQL en '127.0.0.1' (111)


135

Yo uso el siguiente comando:

mysql -u root -h 127.0.0.1 -p

y el mensaje de error es:

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

¿Quién puede ayudarme a arreglarlo?


3
¿Se está ejecutando mysql daemon? ¿Tienes un cortafuegos? ¿Puede usted telnet a mysql el puerto por defecto es de 306 por lo que - telnet localhost 3306
mmmmmm

El demonio mysql se está ejecutando. Estoy seguro.
Charlie Epps el

1
¿Soy solo yo o si te estás conectando al servidor mysql local no necesitas especificar el host, por ejemplo, mysql -u root -p debería funcionar?
RMcLeod el

solo para asegurarte, ¿estás intentando conectarte al servidor db localmente?
John Kane

Recientemente instalé mysql en ubuntu-12.04.2. La versión es 14.14 Distrib 5.5.32, para debian-linux-gnu (x86_64) usando readline 6.2, su configuración predeterminada no contiene 'skip-networking'. Entonces no encontraría el error con esta versión.

Respuestas:


220

Si está utilizando ubuntu, debe seguir los siguientes pasos para evitar este error (si no hay replicación habilitada):

  1. ejecuta el comando vim /etc/mysql/my.cnf
  2. comentar bind-address = 127.0.0.1usando el símbolo #
  3. reinicie su servidor mysql una vez.

Actualizar

En el Paso 1, si no puede encontrarlo bind-addressen el my.cnfarchivo, búsquelo en el /etc/mysql/mysql.conf.d/mysqld.cnfarchivo.

Actualización en caso de replicación MySQL habilitada

Intente conectar el servidor MySQL en el IPque está vinculado el servidor MySQL en 'my.cnf instead oflocalhost o 127.0.0.1'.


8
¡¡¡Gracias!!! ¡Había estado tratando de resolver esto por mucho tiempo! Comenté esa línea, guardé el archivo y luego corrí service mysql restart. ¡Y ahora funciona!
Ryan

En mi caso, tenía la dirección del servidor en lugar de 127.0.0.1 para bind-address. Si este es su caso, también deberá comentarlo.
Vlad Schnakovszki

44
No existe bind-address = 127.0.0.1en/etc/mysql/my.cnf
RegarBoy

66
@developer, encontré el mío aquí: /etc/mysql/mysql.conf.d/mysqld.cnf
una vez el

Cambié bind-address = <main server ip>, pero no puedo reiniciar mysql.
Avi Kehat

14

Intente en localhostlugar de 127.0.0.1conectarse o en su connection-config. Trabajó para mí en un servidor Debian Squeeze


Para su información, si especifica localhost, eso le dice a Mysql que se conecte a través del socket unix (/var/run/mysqld/mysqld.sock en ubuntu) en lugar de a través de un socket TCP.
Duke

8

Esto sucede cuando olvida iniciar la base de datos antes de conectarse a ella:

mysql.server start

luego

mysql -u root -p -h 127.0.0.1

en la terminal en mac y linux. Creo que es lo mismo en Windows CMD, pero no estoy seguro.
Henry

Tuve que iniciar el servidor MySQL usando sudo service mysqld startmi instancia de AWS EC2 con MySQL Community Server.
harshainfo

6

En mi caso (conexión remota) ayudó a desactivar el firewall en el servidor.

service iptables stop

@ram Probablemente esté utilizando algún otro firewall. O su problema no es un firewall en absoluto. Consulte la documentación de su distribución de Linux.
Bunyk

1
@ram tryservice firewalld stop
Maxim Mazurok

1
MySQL generalmente se ejecuta en el puerto 3306, así que agréguelo a su firewall
kurdtpage

6

Este problema puede ocurrir porque su servidor MySQL no está instalado y ejecutándose. Para hacer ese símbolo del sistema de inicio como administrador e ingresar el comando:

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

Si recibe el mensaje "servicio instalado correctamente", debe iniciar el servicio MySQL. Para hacerlo: vaya a la ventana Servicios (Administrador de tareas -> Servicios -> Servicios abiertos) Busque MySQL e inícielo desde la barra de navegación superior. Entonces, si intenta abrir mysql.exe, funcionará.


2
Un pequeño error, cd "C:\Program Files (x86)\MySQL\MySQL Server 5.1\bin" y luego mysqld --install. Además, el número del servidor depende de la descarga.
Dejazmach

Hacer esto solucionó mi problema
Steffi Keran Rani J

6

mire el my.cnfarchivo, si contiene una [client]sección y no portes un puerto de escucha real (por defecto 3306), debe conectar el servidor con un parámetro explícito -P 3306, p. ej.

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


¿Dónde puedo buscar el my.cnf. no está allí en el servidor wamp, en mi computadora portátil
Deepak Keynes

En Windows, generalmente llama 'my.ini'
Yu Jiaao

Para mí el puerto fue el problema. Gracias
Chandra Eskay

0

Debe cambiar el parámetro bind-address a 127.0.0.1 en el archivo de configuración de mysql (my.ini o my.cnf) o usar el que se define allí.

Si eso no funciona, debe verificar que el servicio mysql se esté ejecutando realmente.


1
He agregado la línea "bind-address = 127.0.0.1" al archivo my.cnf. Pero no funciona.
Charlie Epps el

2
Si esta línea está presente, mysql escuchará SOLAMENTE la dirección indicada. Para habilitar el acceso remoto, debe ELIMINAR esta línea. Tenga en cuenta la implicación de seguridad que esto tiene.
webkraller

agregar bind-address =127.0.0.1my.cnf desactiva la conexión remota a la base de datos. Entonces, incluso si funcionaría (que no lo es), esa no es una buena solución.
Nir Alfasi

La dirección de enlace debe ser 0.0.0.0 a menos que no desee que nadie más se conecte.
Marqués de Lorne

0

En caso de que esté ejecutando en un puerto no predeterminado, puede intentar usar --port=<port num> siempre --skip-networkingquenot enabled.


0

Solo tengo este problema ... ejecutándose en Win7 y servidor wamp ... después de leer esto

Descubrí que el antivirus antivirus ha causado el problema.


0

También estaba enfrentando el mismo problema. Lo siguiente me ayudó a solucionar el problema: vaya al panel de control-> Herramientas administrativas -> servicios dentro de este, seguramente verá el servicio MySQL: haga clic derecho y diga inicio (forzar inicio).


0

Para usuarios de Docker : cuando intente conectar sql local usandomysql -u root -h 127.0.0.1 -py su base de datos se esté ejecutando en elcontenedor Docker , asegúrese de que el servicio mysql esté en funcionamiento (verifique usandodocker psy también verifique que esté en el puerto correcto), si el contenedor está abajo obtendrá un error de conexión.

La mejor práctica es configurar las IP en /etc/hostssu máquina:

127.0.0.1 db.local

y ejecutándolo mysql -u root -h db.local -p


0

Intente no cerrar iptables y abrir el puerto 3306.

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

o sudo ufw allow 3306si usas ufw.

comprobar: netstat -lnp | grep mysqldeberías obtener algo así:

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

si tiene nulo, elimine # antes de port = 3306 en el archivo cnf.


0

Asegúrese de que su servidor MySql se esté ejecutando en localhost.

En Linux

Para verificar si el servidor MySql se está ejecutando:

sudo service mysql status

Para ejecutar el servidor MySql:

sudo service mysql start

En Windows

Para verificar si el servidor MySql se está ejecutando:

C:\Windows\system32>net start

Si MySql no está en la lista, debe iniciar / ejecutar MySql.

Para ejecutar el servidor MySql:

C:\Windows\system32>net start mysql

Espero que esto ayude.



-2

acabo de reiniciar mi servidor mysql y el problema resuelto en Windows net detiene MySQL y luego inicia MySql ubuntu linux sudo service inicia mysql

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.