Solucionar errores comunes de conexión a MySQL


Errores comunes de conexión

Los errores de conexión a MySQL pueden tener varias causas. En esta guía te ayudamos a identificar y solucionar los problemas más frecuentes.


Error 1: "Can't connect to MySQL server"

Causas posibles:

  • MySQL no está corriendo
  • Puerto bloqueado por firewall
  • Dirección IP o host incorrecto
  • MySQL no está escuchando en la interfaz correcta

Soluciones:

1. Verificar que MySQL esté corriendo:

sudo systemctl status mysql
# O
sudo systemctl status mysqld

Si no está corriendo, iniciarlo:

sudo systemctl start mysql
sudo systemctl enable mysql

2. Verificar que MySQL esté escuchando:

sudo netstat -tlnp | grep 3306
# O
sudo ss -tlnp | grep 3306

Deberías ver algo como: 0.0.0.0:3306 o 127.0.0.1:3306

3. Verificar firewall:

sudo ufw status
sudo ufw allow 3306/tcp

4. Verificar configuración de bind-address:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Verificá que bind-address esté configurado correctamente: - 127.0.0.1 para solo conexiones locales - 0.0.0.0 para conexiones remotas


Error 2: "Access denied for user"

Causas posibles:

  • Contraseña incorrecta
  • Usuario no existe
  • Usuario no tiene permisos para conectarse desde ese host

Soluciones:

1. Verificar credenciales:

mysql -u usuario -p

Si funciona desde la terminal pero no desde la aplicación, el problema puede ser en la configuración de la aplicación.

2. Verificar que el usuario existe:

mysql -u root -p
SELECT user, host FROM mysql.user WHERE user='nombre_usuario';

3. Verificar permisos del usuario:

SHOW GRANTS FOR 'usuario'@'localhost';
SHOW GRANTS FOR 'usuario'@'%';

4. Otorgar permisos si es necesario:

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'localhost';
FLUSH PRIVILEGES;

Error 3: "Too many connections"

Causa: Se alcanzó el límite máximo de conexiones simultáneas.

Soluciones:

1. Ver conexiones actuales:

mysql -u root -p
SHOW PROCESSLIST;
SHOW STATUS LIKE 'Threads_connected';

2. Ver límite máximo:

SHOW VARIABLES LIKE 'max_connections';

3. Aumentar límite de conexiones:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Agregá o modificá:

[mysqld]
max_connections = 200

Reiniciá MySQL:

sudo systemctl restart mysql

4. Cerrar conexiones inactivas:

mysql -u root -p
KILL id_proceso;

Error 4: "Connection refused"

Causas posibles:

  • MySQL no está corriendo
  • Puerto incorrecto
  • Firewall bloqueando el puerto

Soluciones:

1. Verificar que MySQL esté corriendo:

sudo systemctl status mysql

2. Verificar puerto:

mysql -u root -p -e "SHOW VARIABLES LIKE 'port';"

3. Verificar firewall:

sudo ufw status
sudo iptables -L -n | grep 3306

Error 5: "Host is not allowed to connect"

Causa: El host desde el que intentás conectarte no está permitido.

Soluciones:

1. Ver hosts permitidos:

mysql -u root -p
SELECT user, host FROM mysql.user WHERE user='nombre_usuario';

2. Permitir conexión desde cualquier host (menos seguro):

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'%' IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;

3. Permitir conexión desde IP específica (más seguro):

GRANT ALL PRIVILEGES ON nombre_base_datos.* TO 'usuario'@'192.168.1.100' IDENTIFIED BY 'contraseña';
FLUSH PRIVILEGES;

Error 6: "Unknown database"

Causa: La base de datos especificada no existe.

Soluciones:

1. Listar bases de datos disponibles:

mysql -u root -p
SHOW DATABASES;

2. Crear la base de datos si no existe:

CREATE DATABASE nombre_base_datos CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. Verificar nombre en la configuración:

Revisá que el nombre de la base de datos en tu aplicación sea correcto (case-sensitive en Linux).


Error 7: "Lost connection to MySQL server"

Causas posibles:

  • Timeout de conexión
  • MySQL se reinició
  • Problemas de red
  • Consulta muy larga

Soluciones:

1. Aumentar timeout:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Agregá:

[mysqld]
wait_timeout = 600
interactive_timeout = 600

2. Verificar logs de MySQL:

sudo tail -f /var/log/mysql/error.log

3. Verificar estado de MySQL:

sudo systemctl status mysql

Error 8: "SSL connection error"

Causa: Problema con la configuración SSL.

Soluciones:

1. Deshabilitar verificación SSL (solo para desarrollo):

En la conexión, agregá: ?ssl-mode=DISABLED

2. Configurar SSL correctamente:

mysql -u root -p
SHOW VARIABLES LIKE '%ssl%';

Herramientas de diagnóstico

1. Probar conexión desde terminal:

mysql -h localhost -u usuario -p
mysql -h 127.0.0.1 -u usuario -p
mysql -h IP_SERVIDOR -u usuario -p

2. Verificar conectividad de red:

telnet IP_SERVIDOR 3306
# O
nc -zv IP_SERVIDOR 3306

3. Ver logs de MySQL:

sudo tail -f /var/log/mysql/error.log
sudo tail -f /var/log/mysql/mysql.log

4. Ver procesos de MySQL:

mysql -u root -p
SHOW PROCESSLIST;
SHOW STATUS;

Checklist de solución de problemas

  • ✅ Verificar que MySQL esté corriendo
  • ✅ Verificar credenciales (usuario y contraseña)
  • ✅ Verificar que la base de datos exista
  • ✅ Verificar permisos del usuario
  • ✅ Verificar configuración de firewall
  • ✅ Verificar configuración de bind-address
  • ✅ Verificar logs de MySQL
  • ✅ Verificar conectividad de red
  • ✅ Verificar límites de conexiones

Prevención de problemas

  • Monitoreá las conexiones: Revisá regularmente cuántas conexiones hay activas
  • Usá conexiones persistentes: En aplicaciones web, usá connection pooling
  • Cerá conexiones correctamente: Asegurate de cerrar conexiones cuando no se usen
  • Configurá timeouts apropiados: Evitá timeouts muy cortos o muy largos
  • Hacé backups regulares: Para poder restaurar si hay problemas

¿Necesitás ayuda?

Si no podés resolver el error de conexión, abrí un ticket desde el panel de billing.baires.host o contactanos por soporte. Incluí los mensajes de error completos y los pasos que ya intentaste.

También podés escribirnos por nuestras redes:

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)