mysql - winx32 - workbench para windows 10




MySQL Workbench desconecta la conexión cuando está inactiva (5)

Este error existe en todas las versiones de MySQL Workbench más allá de 6.0 (en este momento: 6.1, 6.2 y 6.3 tienen el error).

La degradación a MySQL Workbench 6.0.x parece ser la única forma de solucionar este problema.

Descargue MySQL Workbench 6.0.x: http://dev.mysql.com/downloads/workbench/6.0.html

Estoy usando MySQL Workbench 6.3 en mi OS X 10.9.5 para administrar varias bases de datos en la nube (alojadas en Rackspace), y me sale el siguiente problema:

Cuando está inactivo durante 5 minutos, ocurren los siguientes problemas:

  • No puedo ejecutar ninguna consulta (error 2013: conexión perdida al servidor MySQL durante la consulta)
  • cuando intento explorar tablas en mi base de datos, recibo mensajes como "No se han podido obtener las tablas", "No se han podido obtener vistas", etc.
  • al actualizar el panel izquierdo, aparece un "Código de error: el servidor MySQL 2006 se ha ido"

Entonces, básicamente, la conexión se ha ido.

Esto es realmente molesto ya que ocurre después de solo 5 minutos de inactividad. Por lo tanto, necesito cerrar la conexión y volver a abrirla cada vez.

También probé esto: MySQL Workbench: Cómo mantener viva la conexión , que no cambió nada. En la pestaña Preferencias de mi banco de trabajo, tengo la siguiente configuración:

  • Intervalo de mantenimiento de la conexión DBMS (en segundos): 600
  • Tiempo de espera de lectura de la conexión DBMS (en segundos): 600
  • Tiempo de espera de conexión DBMS (en segundos): 60

Tenga en cuenta que este problema ocurre precisamente después de 5 minutos de inactividad. Si ejecuto dos consultas en un intervalo de 4'59 minutos, funciona perfectamente bien. Además, mis colegas que se conectan a la misma base de datos en su Workbench no tienen este problema.

¿Alguien tiene una solución para esto?


Esto me había vuelto mental durante meses. Mis conexiones fueron a un servidor Hostgator. Me conectaría y podría editar una tabla por solo 10 segundos más o menos después de conectarme, luego haría, digamos, una confirmación de tabla y la tabla cambiaría a "Solo lectura" con un mensaje de "No podría determinar un identificador de fila único (el servidor MySQL se ha ido) o "(perdió la conexión con el servidor MySQL durante la consulta).

La solución fue, como otras sugerencias aquí, para REDUCIR la configuración de mantener vivo. En mi caso, tenía que bajar a 10s (obviamente, Hostgator es bastante miserable con su ancho de banda).

Primero intenté reducir SSH KeepAlive (en Preferencias / Otros / Tiempos de espera ) pero esto no funcionó.

¿Qué hizo el truco fue reducir el DBMS connection keep-alive interval (en Preferencias / Editor de SQL / sesión de MySQL ). Tuve que llevarlo hasta 10 s hasta que la conexión se mantuviera estable. Tu anfitrión puede ser diferente.

Finalmente, no más "Refresh All", espere, haga algo, enjuague y repita.


La respuesta de Kosh Very no funcionó para mí, así que encontré una solución diferente para esto:

cambie max_allowed_packet en el archivo my.ini . (C: \ ProgramData \ MySQL \ MySQL Server 5.6)

max_allowed_packet = 16M

ahora reinicie el servicio MySQL una vez que haya terminado.


Me solucionó estableciendo tcp_keepalive_time en 120 segundos en Ubuntu 14.04 alojado en Windows Azure

El keepalive de TCP en el equilibrador de carga de Azure tiene 240 segundos de forma predeterminada, lo que puede ocasionar que caiga conexiones silenciosamente si el TCP keepalive en sus sistemas Azure es mayor que este valor. Debe establecer tcp_keepalive_time en 120 para mejorar este problema.

  1. Para verificar el tcp_keepalive_time

    cat / proc / sys / net / ipv4 / tcp_keepalive_time

7200 (por defecto 2 horas)

2. establecer el valor de 2 horas a 120 segundos.

sudo sysctl -w net.ipv4.tcp_keepalive_time = 120

net.ipv4.tcp_keepalive_time = 120

  1. vuelva a verificar el valor después de cambiar.

    cat / proc / sys / net / ipv4 / tcp_keepalive_time

120

4. Establezca el valor en el archivo sysctl para mantener el valor incluso después de reiniciar.

vi /etc/sysctl.conf

Presione i (Para insertar en el archivo) net.ipv4.tcp_keepalive_time = 120 (Agregue esta línea en la parte inferior del archivo): wq (Guardar y salir)


Kosh Very es la respuesta correcta. Para cualquiera que no pueda hacer que funcione, aquí hay otra solución:

Donde necesito alterar una tabla enorme (colocar o agregar una columna o algo así), es ejecutar la consulta (s) por terminal:

  1. Conectar : mysql -u myusername -p

  2. Se le pedirá una contraseña

  3. Ejecute la (s) consulta (s) larga (s) que necesita. Nota: escribir una consulta en el terminal requiere un punto y coma (;) final para cada uno. Ejemplo: ALTER TABLE mydb.mytable DROP COLUMN mycol;






connection-timeout