¿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