Vraag MySQL Workbench verlaagt de verbinding wanneer deze niet actief is


Ik gebruik MySQL Workbench 6.3 op mijn OS X 10.9.5 om verschillende clouddatabases te beheren (gehost op Rackspace) en ik krijg het volgende probleem:

Wanneer u 5 minuten niet actief bent, gebeuren de volgende problemen:

  • Ik kan geen query uitvoeren (fout 2013: verloren verbinding met MySQL-server tijdens query)
  • wanneer ik door tabellen op mijn database probeer te bladeren, ontvang ik berichten als 'Tafels kunnen niet worden opgehaald', 'Kan weergaven niet ophalen', enzovoort
  • bij het vernieuwen van het linkerdeelvenster krijg ik een "Foutcode: 2006 MySQL-server is verdwenen"

Dus eigenlijk is de verbinding verdwenen.

Dit is echt vervelend omdat het gebeurt na slechts 5 minuten inactiviteit. Daarom moet ik de verbinding sluiten en elke keer opnieuw openen.

Ik probeerde dit ook: MySQL Workbench: de verbinding levend houden, wat niets veranderde. Op mijn Workbench-voorkeuren-tabblad heb ik de volgende opstelling:

  • DBMS-verbinding keep-alive-interval (in seconden): 600
  • DBMS-verbinding leest time-out (in seconden): 600
  • DBMS-verbinding time-out (in seconden): 60

Merk op dat dit probleem gebeurt precies na 5 minuten inactiviteit! Als ik twee query's in een interval van 4'59 minuten uitvoer, werkt het prima. Ook mijn collega's die verbinding maken met dezelfde database op hun Workbench hebben dit probleem niet.

Heeft iemand hier een oplossing voor?


31
2017-08-04 14:05


oorsprong


antwoorden:


Ga naar Bewerken -> Voorkeuren -> SQL-editor en daar zie je:

DBMS connection keep-alive interval (in seconds): 600
DBMS connection read time out (in seconds): 600
DBMS connection time out (in seconds): 60

Het DBZ-verbinding-keep-alive-interval houdt in hoe vaak Workbench een Keep-Alive-verzoek verzendt naar de server om de verbinding levend te houden.

Sinds 5 minuten == 300 seconden, stel een DBMS-verbinding in voor het keep-alive-interval <300 (bijvoorbeeld 250)

Dit betekent "elke 250 seconden een Keep Keep-verzoek versturen". Klik OK.

Sluit vervolgens MySQL Workbench en start het opnieuw om de wijzigingen door te voeren.

Als u de standaard TCP / IP via SSH-verbindingsmethode gebruikt, kan het ook handig zijn om ssh ServerAliveInterval ook te configureren.


21
2017-12-28 18:21



Deze bug bestaat in alle versies van MySQL Workbench voorbij 6.0 (op dit moment: 6.1, 6.2 en 6.3 hebben de bug).

Downgraden naar MySQL Workbench 6.0.x lijkt de enige manier om dit probleem op te lossen.

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


12
2018-06-17 20:46



FWIW: Na Kosh's aanbeveling veranderde ik de instellingen als volgt en het lijkt het probleem op WB 6.3 uitgevoerd op Ubuntu 16 te hebben geëlimineerd:

DBMS connection keep-alive interval (in seconds): 60
DBMS connection read time out (in seconds): 60
DBMS connection time out (in seconds): 30

Het is misschien overdreven, maar het werkt.


1
2017-08-10 13:59



Het antwoord van Kosh Very werkte niet voor mij, daarom vond ik een andere oplossing hiervoor:

verander max_allowed_packet in de my.ini het dossier. (C: \ ProgramData \ MySQL \ MySQL Server 5.6)

max_allowed_packet = 16M

herstart nu de MySQL-service als je klaar bent.


0
2018-04-29 10:39



Het loste me op door tcp_keepalive_time in te stellen op 120 seconden op Ubuntu 14.04 gehost op Windows Azure

De TCP-keepalive op de Azure-load balancer is standaard 240 seconden, waardoor de verbinding in stilte kan worden verbroken als de TCP-keepalive op uw Azure-systemen groter is dan deze waarde. Stel tcp_keepalive_time in op 120 om dit probleem te verhelpen.

  1. Om de tcp_keepalive_time te controleren

    cat / proc / sys / net / ipv4 / tcp_keepalive_time

7200 (standaard 2 uur)

2.stel de waarde in tussen 2 uur en 120 seconden.

sudo sysctl -w net.ipv4.tcp_keepalive_time = 120

net.ipv4.tcp_keepalive_time = 120

  1. controleer de waarde opnieuw na het wijzigen.

    cat / proc / sys / net / ipv4 / tcp_keepalive_time

120

4.Stel de waarde in het sysctl-bestand in om de waarde te behouden, zelfs na opnieuw opstarten.

vi /etc/sysctl.conf

Druk op i (invoegen in bestand) net.ipv4.tcp_keepalive_time = 120 (voeg deze regel toe onderaan het bestand) : wq (opslaan en afsluiten)


0
2017-08-27 05:25



Kosh Veryis het juiste antwoord. Voor iedereen die het niet kon laten werken, is hier nog een andere oplossing:

Waar ik een grote tabel moet veranderen (drop of column toevoegen ofzo), is om de query ('s) per terminal uit te voeren:

  1. Aansluiten: mysql -u myusername -p 

  2. U wordt om een ​​wachtwoord gevraagd

  3. Rennen de langlopende zoekopdracht (en) die u nodig hebt. Opmerking: voor het schrijven van een query in de terminal is een eindkomm punt (;) voor elke query vereist. Voorbeeld: ALTER TABLE mydb.mytable DROP COLUMN mycol;

0
2017-07-10 05:45



Dit had me maandenlang mentaal gedreven. Mijn verbindingen waren met een Hostgator-server. Ik zou verbinden en zou een tabel kunnen bewerken voor slechts 10 seconden of zo na het verbinden, dan zou ik zeggen, een tafel commit en de tafel zou veranderen in "Alleen lezen" met een mouse-over bericht van, "Kon niet bepalen van een unieke rij-ID (MySQL-server is verdwenen) of "(Verloren verbinding met MySQL-server tijdens query).

De oplossing was, zoals andere suggesties hier, om de keep-alive-instelling te VERMINDEREN. In mijn geval moest het neerkomen op 10s (duidelijk, Hostgator als redelijk gierig met hun bandbreedte!)

Eerst probeerde ik te verminderen SSH KeepAlive (onder Voorkeuren / overig / Time-outs) maar dit werkte niet.

Wat deed de truc het verminderen van de DBMS connection keep-alive interval (onder Voorkeuren / SQL-editor / MySQL-sessie). Ik moest het helemaal tot 10 sec terugbrengen totdat de verbinding stabiel zou blijven. Je gastheer kan anders zijn.

Tot slot, niet meer "Refresh All", wacht, doe iets, spoel en herhaal.


0
2017-12-09 19:07