warning servidor puede not mysqli_connect hy000 error could connecting conectar code mysql linux remote-access mysql-error-2003

not - ERROR 2003(HY000): No se puede conectar al servidor MySQL(111)



no se puede conectar al servidor mysql en localhost 10061 (10)

Esta pregunta está relacionada con las siguientes preguntas:

Estoy configurando un nuevo servidor MySQL (5.1) en mi máquina local. Necesito proporcionar acceso remoto a la base de datos. Hice los siguientes pasos:

  1. Comentar bind-address en my.cnf:

    # bind-address = 192.168.1.3

  2. Otorgar privilegios:

    GRANT ALL PRIVILEGES ON *.* TO ''nickruiz''@''%'' IDENTIFIED BY PASSWORD ''xxxx'';

  3. Configure el reenvío de puertos en el enrutador (TCP y UDP, puerto 3306, 192.168.1.3)
  4. Configurar iptables para firewall

    sudo iptables -I INPUT -p udp --dport 3306 -j ACCEPT sudo iptables -I INPUT -p tcp --dport 3306 --syn -j ACCEPT sudo iptables-save

  5. Reinicie el servidor mysql sudo /etc/init.d/mysql restart

Al realizar la prueba, obtengo lo siguiente:

LAN:

mysql -h 192.168.1.3 -u nickruiz -p Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 95 Server version: 5.1.63-0ubuntu0.11.04.1 (Ubuntu)

Remoto:

mysql -h 1xx.xx.4.136 -u nickruiz -p ERROR 2003 (HY000): Can''t connect to MySQL server on ''1xx.xx.4.136'' (111)

Claramente, hay algo mal que me impide poder usar mi dirección IP global.

Notas:

  • He intentado probar la conexión remota en la misma máquina y también a través de SSH desde una máquina remota.
  • No estoy seguro de si mi ISP me ha dado una IP estática.

¿Algunas ideas?

Actualización: telnet no parece estar funcionando.

telnet 192.168.1.3 3306 Trying 192.168.1.3... Connected to 192.168.1.3. Escape character is ''^]''. E 5.1.63-0ubuntu0.11.04.1,0g8!:@pX;]DyY0#/)SIConnection closed by foreign host.


A veces, cuando tiene caracteres especiales en la contraseña, necesita envolverla en caracteres '''' , por lo que para conectarse a db puede usar:

mysql -uUSER -p''pa$$w0rd''

Tuve el mismo error y esta solución lo resolvió.


No estoy seguro como no puedo verlo en los pasos que mencionaste.

Intente FLUSH PRIVILEGES [Recarga los privilegios de las tablas de concesión en la base de datos mysql]:

privilegios de descarga;

Necesitas ejecutarlo después de GRANT.

¡Espero que esto ayude!


Por favor revise sus puertos de escucha con:

netstat -nat |grep :3306

Si se muestra

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

Eso está bien para su conexión remota.

Pero en este caso creo que tienes

tcp 0 192.168.1.3:3306 0.0.0.0:* LISTEN

Eso está bien para su conexión remota. También deberías revisar tu firewall (iptables si centos / redhat)

services iptables stop

Para pruebas o uso:

iptables -A input -p tcp -i eth0 --dport 3306 -m state NEW,ESTABLISHED -j ACCEPT iptables -A output -p tcp -i eth0 --sport 3306 -m state NEW,ESTABLISHED -j ACCEPT

Y otra cosa para comprobar su permiso de concesión para la conexión remota:

GRANT ALL ON *.* TO remoteUser@''remoteIpadress'' IDENTIFIED BY ''my_password'';


Si el sistema que usa es CentOS / RedHat, y rpm es la forma en que instala MySQL, no hay my.cnf en la carpeta / etc /, puede usar: #whereis mysql #cd / usr / share / mysql / cp -f /usr/share/mysql/my-medium.cnf /etc/my.cnf


Tengo una pregunta similar a la tuya, utilizo wireshark para capturar mis paquetes TCP enviados, encontré que cuando uso mysql bin para conectar el host remoto, conecta el puerto 3307 del control remoto, esa es mi falla en /etc/mysql/my.cnf , 3307 es otro puerto mysql del proyecto, pero cambio esa configuración en la parte my.cnf [cliente], cuando uso la opción -P para especificar el puerto 3306, está bien.


Tuve el mismo problema al intentar conectarme a un db remoto de mysql.

Lo arreglé abriendo el firewall en el servidor db para permitir el tráfico a través de:

sudo ufw allow mysql


Verifique que su host remoto (es decir, el servidor de alojamiento web desde el que intenta conectarse) permita el tráfico SALIENTE en el puerto 3306.

Vi el error (100) en esta situación. Podría conectarme desde mi PC / Mac, pero no desde mi sitio web. Se pudo acceder a la instancia de MySQL a través de Internet, pero mi empresa de alojamiento no permitía que mi sitio web se conectara a la base de datos en el puerto 3306.

Una vez que le pedí a mi empresa de alojamiento que abriera mi cuenta de alojamiento web hasta el tráfico saliente en el puerto 3306, mi sitio web podría conectarse a mi base de datos remota.


configuro mi dirección de enlace correctamente como antes, pero me olvidé de reiniciar el servidor mysql (o reinicio) :) cara palma - ¡así que esa es la fuente de este error para mí!


errno 111 es ECONNREFUSED, supongo que algo está mal con el DNAT del enrutador.

También es posible que su ISP esté filtrando ese puerto.


/etc/mysql$ sudo nano my.cnf

Porción relevante que me funciona:

#skip-networking # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = MY_IP

MY_IP se puede encontrar usando ifconfig o curl -L whatismyip.org |grep blue .

Reinicie mysql para asegurarse de que se carga la nueva configuración:

/etc/mysql$ sudo service mysql restart