Error 2003 al conectarse en MySQL: Can´t conect to MySQL server

Esta entrada tiene por objetivo proporcionar algunos pasos necesarios para resolver el error: ERROR 2003 (HY000): Can’t connect to MySQL server on ‘127.0.0.1’ que ocurre cuando intentas conectarte al servidor de base de datos MySQL (o MariaDB).

Para este tutorial asumiremos que ya tienes instalado el servidor MySQL o MaríaDB.

Posibles causas

  • Error de red, especialmente si el servidor de Base de Datos está corriendo en la máquina remota.
  • No se está ejecutando ningún servidor de Base de Datos en el host.
  • El firewall está bloqueando la conexión TCP/IP o alguna otra razón.

Pasos para solucionar el problema

Verifica la conectividad

Si el servidor está corriendo en la máquina remota, intenta probar la conectividad entre el servidor y el cliente usando el comando ping.

$ ping server_ip_address

Ping Host Machine

Verifica el servicio

Una vez haz comprobado que existe una conexión entre el cliente y el servidor, deberás verificar si el servicio está corriendo en el servidor de base de datos

$ ps -Af | grep mysqld

Donde las opciones:

  • -A Activa la selección de todos los procesos
  • -f Habilita la lista de formato completo
Check MySQL Process

Si no hay una salida como la anterior, quiere decir que tu servidor de base de datos, no está corriendo, por lo que deberás iniciar el servicio.

$ sudo systemctl start mariadb

Establece una conexión

Después de haber hecho lo anterior, intenta establecer una conexión a la base de datos

$ mysql -h host_adress -u username -p

Si aun obtienes el mismo error, determina el puerto (de forma predeterminada es el 3306) que escucha el demonio de mysql, ejecutando el siguiente comando

$ netstat -lnp | grep mysql

Donde las opciones:

  • -l muestra los puertos de escucha
  • -n Habilita la visualización de direcciones numéricas
  • -p Muestra el PID (Identificador) y el nombre del programa que posee el socket.
Find MySQL Port Number

Al conectarte a la base de datos, podrás usar la opción -P para especificar el puerto que utilizarás, en el ejemplo anterior MySQL no se encuentra a la escucha en el puerto predeterminado.

Para conectarte deberás usar el comando incluyendo el número de puerto (-P)

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

Nota: Habrás observado que en el comando se utiliza -p y -P; esto es así puesto que -p (minúscula) indica que el usuario deberá introducir la contraseña, mientras que -P (mayuscula) especifica el puerto. 

Otras soluciones

Editar el archivo de configuración

Si a pesar de todas las opciones anteriores sigue apareciendo el error, abre el archivo de configuración de mysql

$ sudo vim /etc/my.cnf

Busca la siguiente línea y coméntala usando el símbolo #

# bind-adress = 127.0.0.1

Guarda el archivo y reinicia el servidor

$ sudo systemctl restart mariadb

Agrega el puerto de MySQL al firewall

Si notaste que el servicio MySQL está bloqueado por el firewall, podrás agregarlo con la siguiente instrucción

$ sudo firewall-cmd --permanent --add-port=3306/tcp

Y recargar la nueva configuración del firewall

$ sudo systemctl reload firewalld

Revisa nuevamente la configuración del firewall con la siguiente instrucción, deberá aparecer abierto el puerto que hayas elegido para usar mysql

$ sudo firewall-cmd --list-all

Con esto, ya deberás poder conectarte a tu servidor de base de datos de forma exitosa.

Referencias externas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *