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


Este tutorial está destinado a explicar los pasos necesarios para resolver el "ERROR 2003 (HY000): No se puede conectar al servidor MySQL en" 127.0.0.1 "(111)" que puede ocurrir cuando intenta acceder al servidor de la base de datos MySQL.

Antes de continuar, si es un usuario de Linux que es nuevo en MySQL/MariaDB, entonces puede considerar aprender 20 comandos de MySQL (Mysqladmin) para la administración de bases de datos en Linux también.

Por otro lado, si ya es un usuario intermedio/experimentado de MySQL, puede dominar estos 15 consejos útiles de optimización y ajuste del rendimiento de MySQL/MariaDB.

Nota: Para este tutorial, se asume que ya ha instalado el servidor de base de datos mysql.

Volviendo al punto de enfoque, ¿cuáles son algunas de las posibles causas de este error?

  1. Fallo en la red, especialmente si el servidor de base de datos mysql se está ejecutando en un host remoto.
  2. No se está ejecutando ningún servidor mysql en el host mencionado.
  3. Cortafuegos que bloquea la conexión TCP-IP u otras razones relacionadas.

A continuación se muestran los pasos esenciales para solucionarlo.

1. Si el servidor de la base de datos está en una máquina remota, intente probar la conectividad cliente-servidor usando el comando ping , por ejemplo:

$ ping server_ip_address

Una vez que haya conectividad, use el comando ps a continuación, que muestra información sobre una selección de los procesos activos, junto con un pipe y un comando grep, para verificar que el demonio mysql está ejecutándose en su sistema.

$ ps -Af | grep mysqld

donde la opción:

  1. -A : activa la selección de todos los procesos
  2. -f : habilita la lista de formato completo

Si no hay salida del comando anterior, inicie el servicio mysql de la siguiente manera:

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

Después de iniciar el servicio mysql, intente acceder al servidor de la base de datos:

$ mysql -u username -p -h host_address  

2. Si sigue recibiendo el mismo error, determine el puerto (el predeterminado es 3306) en el que escucha el demonio mysql ejecutando el comando netstat.

$ netstat -lnp | grep mysql

donde las opciones:

  1. -l : muestra los puertos de escucha
  2. -n : habilita la visualización de direcciones numéricas
  3. -p : muestra el PID y el nombre del programa que posee el socket

Por lo tanto, use la opción -P para especificar el puerto que ve en la salida anterior mientras accede al servidor de la base de datos:

$ mysql -u username -p -h host_address -P port

3. Si todos los comandos anteriores se ejecutan correctamente, pero aún ve el error, abra el archivo de configuración de mysql.

$ vi /etc/mysql/my.cnf
OR
$ vi /etc/mysql/mysql.conf.d/mysqld.cnf 

Busque la línea de abajo y coméntela usando el carácter # :

bind-address = 127.0.0.1 

Guarde el archivo y salga, luego reinicie el servicio mysql así:

$ sudo systemctl start mysql.service
$ sudo systemctl start mariadb.service
OR
# sudo /etc/init.d/mysqld start

Sin embargo, si tiene Iptables en ejecución, intente revisar los servicios de firewall y abra el puerto mysql, asumiendo que el firewall bloquea las conexiones TCP-IP a su servidor mysql.

¡Eso es todo! ¿Conoce otros métodos o tiene sugerencias para resolver el error de conexión de MySQL anterior? Háganos saber dejando un comentario a través del formulario de comentarios a continuación.