No se puede conectar al servidor MySQL error 111 [cerrado]

152

Instalé el servidor mysql en Linux box IP = 192.168.1.100 pero cuando intento conectarme a esta IP siempre aparece el error (111). pero use localhost y 127.0.0.1 está bien.

cerveza @ cerveza-laptop # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Máscara: 255.0.0.0
          inet addr: 192.168.1.100 Bcast: 192.168.1.255 Máscara: 255.255.255.0

cerveza @ cerveza-laptop # mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): no se puede conectar al servidor MySQL en '192.168.1.100' (111)

cerveza @ cerveza-laptop # mysql -ubeer -pbeer -hlocalhost
Bienvenido al monitor MySQL. Los comandos terminan con; o \ g.
Su ID de conexión MySQL es 160
Versión del servidor: 5.1.31-1ubuntu2 (Ubuntu)

Escriba "ayuda"; o '\ h' para obtener ayuda. Escriba '\ c' para borrar el búfer.

mysql> 

cerveza @ cerveza-laptop # mysql -ubeer -pbeer -h127.0.0.1
Bienvenido al monitor MySQL. Los comandos terminan con; o \ g.
Su ID de conexión MySQL es 161
Versión del servidor: 5.1.31-1ubuntu2 (Ubuntu)

Escriba "ayuda"; o '\ h' para obtener ayuda. Escriba '\ c' para borrar el búfer.

mysql> 

Conectarse desde otra máquina también error 111.

otro @ otro-portátil # mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): no se puede conectar al servidor MySQL en '192.168.1.100' (111)

Cómo diferencia entre usar localhost / 127.0.0.1 y 192.168.1.100 en este caso. No sé cómo conectarme a esta base de datos desde otra máquina.

Ayuda por favor. Gracias.

wearetherock
fuente

Respuestas:

263

Probablemente significa que su servidor MySQL solo está escuchando la interfaz localhost.

Si tienes líneas como esta:

bind-address = 127.0.0.1

En su my.cnfarchivo de configuración , debe comentarlos (agregue un # al comienzo de las líneas) y reinicie MySQL.

sudo service mysql restart

Por supuesto, para hacer esto, debe ser el administrador del servidor.

Pascal MARTIN
fuente
66
obviamente, él no tiene la skip-networkinglínea ;-)
Michael Krelin - hacker
11
cómo saber mysql my.cnf ubicación: stackoverflow.com/questions/2482234/…
Cyril Jacquart
2
pero, ¿qué sucede cuando PUEDES conectarte desde el banco de trabajo mysql? Tengo el mismo problema.
George Pamfilis
3
Seguí lo que se da en la respuesta, pero aún así no pude hacerlo funcionar. Luego descubrí que el parámetro "bind-address" está en el archivo "/etc/mysql/mysql.conf.d/mysqld.cnf". Comentó allí y funcionó!
Yahya
3
las versiones más recientes de ubuntu> = 16.04 pueden tener esta línea en /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia
38

111 significa conexión rechazada , lo que a su vez significa que su mysqld solo escucha la localhostinterfaz.

Para modificarlo, es posible que desee ver el bind-addressvalor en la mysqldsección de su my.cnfarchivo.

Michael Krelin - hacker
fuente
También vale la pena verificar si el número de puerto es válido. No coincide :3306y :3307puede dar como resultado un error 111 también.
NXT
2
@NXT, ni siquiera sé si mysql puede escuchar en diferentes puertos en diferentes interfaces, pero es un escenario muy poco probable (dados los síntomas en la publicación original), incluso si puede. Entonces puede haber reglas de firewall, etc. Hay muchas maneras de lograrlo, pero la probabilidad es diferente ...
Michael Krelin - hacker
No siempre significa eso. Mis my.cnfarchivos no tienen ninguna bind-addresso skip-networkinglíneas, y aún así obtengo el mismo error. No hay firewall instalado tampoco. Se quedaron sin ideas.
Deleet
Bueno, 111 siempre significa conexión rechazada :) Y el localhost solo es en este caso particular debido a otra evidencia. Si proporciona más detalles sobre su caso, ¿puedo ayudarlo? Además, dependiendo de su sistema hoy en día, es probable que tenga una configuración dispersa en varios archivos.
Michael Krelin - hacker
10

Si todas las respuestas anteriores no le dieron ninguna solución, debe verificar sus privilegios de usuario.

Si puede iniciar sesión rooten mysql, entonces debe agregar esto:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Luego intente conectarse nuevamente usando mysql -ubeer -pbeer -h192.168.1.100. Deberia de funcionar.

xnome
fuente
17
no creo que el error relacionado con los privilegios del usuario dé el error 111.
ufk
1
En realidad funcionó, y también recibí un error 111.
Borjante
Parece que esta es una mejor solución que abrir mysql a toda la red comentando la línea 127.0.0.1. Debería ser la mejor solución.
nyxee
7

Si está ejecutando cPanel / WHM, asegúrese de que la IP esté en la lista blanca en el firewall. También necesitará agregar esa IP a la lista remota de IP SQL en la cuenta de cPanel a la que está intentando conectarse.

Dragos
fuente
1
Un buen "aviso" para ver si es un cortafuegos que causa el error es que tomará bastante tiempo para que se devuelva el error. Si MySQL está causando problemas, la respuesta debería ser casi instantánea.
Grim ...
¿Puedes explicar cómo se hace esto?
Usuario