Top 5 de errores de conexión a MySQL
Autor: Luciano
¿Quien nunca ha recibido un error en la conexión a MySQL? A continuación, un Top 5 con los errores más comunes, su descripción y sus posibles causas.
- Can’t connect to MySQL server on.
- Lost connection to MySQL server during query.
- Access denied for user.
- Host NN is not allowed to connect to this MySQL.
- MySQL server has gone away.
- Can’t connect to MySQL server on: Se refiere a que no puede establecer una conexión por TCP (connection refused). Las razones pueden ser varias:
- Que el servidor no esté corriendo
- Que no nos estemos conectando al puerto al que escucha (por defecto 3306) o que escuche a otro puerto
- Que un firewall nos bloquee el acceso (por ip o puerto)
- Que corra con la opción –skip-networking (solo permite conexiones locales por sock o named pipes)
- Lost connection to MySQL server during query: suele ocurrir cuando el servidor se ve saturado en algún aspecto, conexiones, memoria, etc. Me resulta dificil de diagnosticar, pero sin lugar a dudas deberás modificar alguna de las variables de entorno del servidor:
- connect_timeout
- interactive_timeout
- net_read_timeout
- net_write_timeout
- slave_net_timeout
- wait_timeout
- max_connections
- max_user_connections
- max_allowed_packet
- Access denied for user: es un error de permisos y deberemos solucionarlo haciendo un GRANT. Para chequear los usuarios del sistema, logueado como root puedes hacer “SELECT user,host FROM mysql.user;” y verificar si existe el permiso para el usuario desde el host en cuestión. Cuando en host vemos “%“, eso representa que se puede conectar desde cualquier host.
- Host NN is not allowed to connect to this MySQL: este error suele ser propio de uno que otro fron-end, y se refiere también a una cuestión de permisos.
- MySQL server has gone away: una conexión a la base de datos no es eterna, cada una tiene un timeout, cuando ese timeout expira, adios conexión. Pero esa no es la única causa, también puede ser que:
- El administrador eliminó el thread de tu conexión con la sentencia KILL.
- El servidor fue reiniciado, no así tu sesión (usual cuando tienes una sesión abierta de un front end y el servidor es reiniciado
Para más información puedes consultar la documentación oficial.
Vía: SQLPLEX
Comentarios: