MySQL Workbench: come mantenere viva la connessione


160

Codice errore: 2013. Connessione persa al server MySQL durante la query

Sto usando MySQL Workbench. Inoltre, sto eseguendo un batch di inserti, per un totale di circa 1000 righe (es. INSERT INTO mytable SELECT * FROM mysource1; INSERT INTO mytable SELECT * FROM mysource2;...mysource3...mysource4Moltiplicato per 1000 volte). Ogni batch richiede un tempo considerevole, alcuni dei quali, più di 600 secondi.

Come posso configurare workbench, per continuare a lavorare durante la notte, senza fermarsi e senza perdere la connessione?

Risposte:


344

Dall'archivio Internet ora non disponibile :

Andare su Modifica -> Preferenze -> Editor SQL e impostare su un valore superiore questo parametro: Timeout lettura connessione DBMS (in secondi). Ad esempio: 86400.

Chiudi e riapri MySQL Workbench. Uccidi la tua query precedente che probabilmente è in esecuzione ed esegui nuovamente la query.


5
C'è un bug in tutte le versioni di MySQL Workbench al di là 6.0.x su Mac OS: stackoverflow.com/a/37890150/1014813
lepix

6
Questo ha funzionato per me, ma ha dovuto riavviare l'editor per avere effetto.
Cucu8

@lepix Questo bug è stato corretto?
posfan12

2
È necessario riavviare l'editor affinché ciò abbia effetto dopo aver modificato i valori.
philip oghenerobo balogun,

46

Se si utilizza un tipo di connessione "TCP / IP standard su SSH", in "Preferenze" -> "Altri" è presente il campo "SSH KeepAlive". Mi ci è voluto un po 'di tempo per trovarlo :(


Perché stai ripetendo una risposta?
Jan Doggen,

19
@JanDoggen Non vedo nessun'altra risposta che indichi dove in MySQL Workbench è possibile modificare "SSH KeepAlive" che per impostazione predefinita è 0 => disabilitato. Vedo solo una risposta che suggerisce di cambiare le impostazioni ssh del server ...
Ljubitel

Grazie per averlo sottolineato, poiché qui l'impostazione sovrascrive i file di configurazione del client ~ / .ssh / config e / etc / ssh / ssh_config Questo è un must assoluto per la banda larga mobile.
Rodney,

Potresti aggiungere un esempio di valore da utilizzare nella tua risposta? Mi consiglia qualcosa come 1800secondi?
AL

1
@AL dipende dal tuo contesto. Nel mio caso, la connessione SSH stava scadendo in 3 minuti (180 secondi), quindi ho impostato il mio KeepAlive SSH su 30 secondi.
Ljubitel,

15

In 5.2.47 (almeno su Mac), vai la posizione delle preferenze è: MySQLWorkbench-> Preferenze-> Editor SQL

Quindi vedrai entrambi:

Intervallo keep-alive della connessione DBMS (in secondi): Timeout lettura connessione DBMS (in secondi):

Quest'ultimo è dove vorrai aumentare il limite da 600 a qualcosa in più.


Ho impostato il timeout di lettura della mia connessione DBMS a 86400 secondi, dopo circa 7200 secondi di esecuzione della query viene visualizzato l'errore 2013. Qualcuno ne è a conoscenza?
IndexOutOfDevelopersException

12

Nel mio caso dopo aver provato a impostare il timeout SSH sulla riga di comando e nelle impostazioni del server locale. La soluzione @Ljubitel ha risolto il problema da parte mia.

Un punto da notare è che in Workbench 6.2 l'impostazione è ora in fase avanzata

inserisci qui la descrizione dell'immagine


2
In 6.3 Advanced è stato rinominato come Others.
Richard,

2

Se si utilizza un tipo di connessione "TCP / IP standard su SSH", potrebbe essere il server ssh a mantenere il timeout, nel qual caso, è necessario modificare le impostazioni relative a TCPKeepAlive in / etc / ssh / sshd_config sul server .


2

Stavo ricevendo questo errore 2013 e nessuna delle modifiche alle preferenze sopra ha fatto nulla per risolvere il problema. Ho riavviato il servizio mysql e il problema è scomparso.


2

OK - quindi questo problema mi ha fatto impazzire - v 6.3.6 su Ubuntu Linux. Nessuna delle soluzioni sopra ha funzionato per me. La connessione al server mysql localhost in precedenza funzionava sempre bene. La connessione al server remoto è sempre scaduta - dopo circa 60 secondi, a volte dopo meno tempo, a volte più.

Quello che alla fine ha funzionato per me è stato l'aggiornamento di Workbench alla 6.3.9 - niente più connessioni interrotte.


1

Ho avuto un problema simile in caso di CREATE FULLTEXTtimeout dopo 30 secondi:

errore

L'impostazione dell'intervallo di timeout di lettura della connessione DBMS su 0 in Modifica -> Preferenze -> Editor SQL ha risolto il problema per me:

errore di correzione

Inoltre, non ho dovuto riavviare mysql workbench per farlo funzionare.


0

in mysql-workbech 5.7 modifica-> preferenza-> SSH -> Timeout connessione SSH (per connessione DB SSH) inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.