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?

Charlie Epps
fuente
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'.

Justin Vincent
fuente
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

grex_e
fuente
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
Enrique
fuente
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
Bunyk
fuente
@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á.

S.Roshanth
fuente
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

Yu Jiaao
fuente
¿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.

nkr1pt
fuente
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.

KDAS
fuente
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.

Adhie_x
fuente
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).

Mightian
fuente
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

avivamg
fuente
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.

Karol Preiskorn
fuente
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.

Safiqur Rhaman
fuente
-1

Cambié el directorio de instalación en la reinstalación, y funcionó.

Gursimran Pannu
fuente
-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

jasim
fuente