MySQL Workbench: comment maintenir la connexion active

160

Code d'erreur: 2013. Connexion perdue au serveur MySQL pendant la requête

J'utilise MySQL Workbench. De plus, j'exécute un lot d'inserts, environ 1000 lignes au total (ex. INSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4Multiplié 1000 fois) Chaque lot prend un temps considérable, certains d'entre eux, plus de 600 secondes.

Comment puis-je configurer Workbench, pour continuer à travailler pendant la nuit, sans arrêter et sans perdre la connexion?

Omar
la source

Réponses:

344

À partir de l' archive Internet désormais indisponible :

Allez dans Edition -> Préférences -> Éditeur SQL et définissez sur une valeur plus élevée ce paramètre: Délai de lecture de la connexion SGBD (en secondes). Par exemple: 86400.

Fermez et rouvrez MySQL Workbench. Tuez votre requête précédente qui est probablement en cours d'exécution et réexécutez la requête.

Ignacio
la source
5
Il y a un bug dans toutes les versions de MySQL Workbench au-delà de 6.0.x sur Mac OS: stackoverflow.com/a/37890150/1014813
lepix
6
Cela a fonctionné pour moi, mais a dû redémarrer l'éditeur pour prendre effet.
cucu8
@lepix Ce bogue est-il corrigé?
posfan12
2
Un redémarrage de l'éditeur est nécessaire pour que cela prenne effet après la modification des valeurs.
philip oghenerobo balogun
46

Si vous utilisez une connexion de type «TCP / IP standard sur SSH», sous «Préférences» -> «Autres», il y a le champ «SSH KeepAlive». Il m'a fallu un certain temps pour le trouver :(

Ljubitel
la source
Pourquoi répétez-vous une réponse?
Jan Doggen
19
@JanDoggen Je ne vois aucune autre réponse indiquant où dans MySQL Workbench vous pouvez changer "SSH KeepAlive" qui par défaut est 0 => désactivé. Je ne vois qu'une réponse suggérant de modifier les paramètres ssh du serveur ...
Ljubitel
Merci de l'avoir signalé, car le paramètre ici remplace les fichiers de configuration du client ~ / .ssh / config et / etc / ssh / ssh_config C'est un must absolu pour le haut débit mobile.
Rodney
Pourriez-vous s'il vous plaît ajouter un exemple de valeur à utiliser dans votre réponse? Recommandez-vous quelque chose comme des 1800secondes?
AL
1
@AL cela dépend de votre contexte. Dans mon cas, la connexion SSH expirait dans 3 minutes (180 secondes), j'ai donc réglé mon SSH KeepAlive sur 30 secondes.
Ljubitel
15

Dans la version 5.2.47 (au moins sur mac), l'emplacement des préférences est: MySQLWorkbench-> Préférences-> SQL Editor

Ensuite, vous verrez les deux:

Intervalle de conservation de la connexion au SGBD (en secondes): délai de lecture de la connexion au SGBD (en secondes):

Ce dernier est l'endroit où vous voudrez augmenter la limite de 600 à quelque chose d'un peu plus.

jidulberger
la source
J'ai réglé le délai de lecture de ma connexion SGBD à 86400 secondes, après environ 7200 secondes d'exécution d'une requête, j'obtiens toujours l'erreur 2013. Est-ce que quelqu'un sait quelque chose à ce sujet?
IndexOutOfDevelopersException
12

Dans mon cas, après avoir essayé de définir le délai d'expiration SSH sur la ligne de commande et dans les paramètres du serveur local. La solution @Ljubitel a résolu le problème de moi.

Un point à noter est que dans Workbench 6.2, le paramètre est maintenant sous avancé

entrez la description de l'image ici

Abelgo
la source
2
Dans la version 6.3, Advanced a été renommé Autres.
Richard
2

Si vous utilisez une connexion de type "TCP / IP standard sur SSH", il se peut que ce soit le serveur ssh qui continue d'expirer, auquel cas vous devrez modifier les paramètres liés à TCPKeepAlive dans / etc / ssh / sshd_config sur votre serveur .

Tuncay Göncüoğlu
la source
2

J'obtenais cette erreur 2013 et aucune des modifications de préférences ci-dessus n'a rien fait pour résoudre le problème. J'ai redémarré le service mysql et le problème a disparu.

Neal Garrett
la source
2

OK - donc ce problème m'a rendu fou - v 6.3.6 sur Ubuntu Linux. Aucune des solutions ci-dessus n'a fonctionné pour moi. La connexion au serveur mysql de localhost fonctionnait toujours correctement. La connexion au serveur distant a toujours expiré - après environ 60 secondes, parfois après moins de temps, parfois plus.

Ce qui a finalement fonctionné pour moi, c'est la mise à niveau de Workbench vers la version 6.3.9 - plus de connexions interrompues.

Chris Dav
la source
1

J'ai eu un problème similaire qui a CREATE FULLTEXTexpiré après 30 secondes:

Erreur

La définition de l'intervalle de délai de lecture de la connexion au SGBD sur 0 sous Modifier -> Préférences -> SQL Editor a résolu le problème pour moi:

corriger l'erreur

De plus, je n'ai pas eu à redémarrer mysql workbench pour que cela fonctionne.

Kimbaudi
la source
0

dans mysql-workbech 5.7 edit-> preference-> SSH -> SSH Connect timeout (pour la connexion SSH DB) entrez la description de l'image ici

junior_software
la source