Ich habe den Fehlercode 2013 erhalten. Die Verbindung zum MySQL-Server wurde während eines Abfragefehlers unterbrochen, als ich versuchte, mit MySQL Workbench einen Index zu einer Tabelle hinzuzufügen. Mir ist auch aufgefallen, dass es immer dann angezeigt wird, wenn ich eine lange Abfrage durchführe.
Gibt es weg, um den Timeout-Wert zu erhöhen?
mysql
sql
database
mysql-workbench
user836026
quelle
quelle
DBMS connection read time out
Feld akzeptiert nur bis zu 5 Ziffern, und das Setzen des Felds auf 0 entspricht dem Standardparameter (600 Sekunden). (Windows 7 64-Bit Ultimate, MySQL Workbench 5.2.47 CE)Starten Sie den DB-Server mit der Option comandline
net_read_timeout
/wait_timeout
und einem geeigneten Wert (in Sekunden) - zum Beispiel :--net_read_timeout=100
.Referenz siehe hier und hier .
quelle
mysqld
.Wenn Ihre Abfrage Blob-Daten enthält, kann dieses Problem behoben werden, indem eine in dieser Antwort vorgeschlagene
my.ini
Änderung angewendet wird :Standardmäßig ist dies 1 MB (der zulässige Maximalwert beträgt 1024 MB). Wenn der angegebene Wert kein Vielfaches von 1024 KB ist, wird er automatisch auf das nächste Vielfache von 1024 KB gerundet.
Während der referenzierten Thread zu dem MySQL Fehler ist 2006 , die Einstellung
max_allowed_packet
von 1M bis 16M hat fix die 2013 Fehler, der für mich auftaucht , wenn eine lange Abfrage ausgeführt wird .Für WAMP-Benutzer: Die Flagge finden Sie im
[wampmysqld]
Abschnitt.quelle
Fügen Sie Folgendes in die Datei / etc / mysql / cnf ein:
Beispiel:
quelle
/etc/mysql/cnf
korrekt ist? Sollte es nicht sein/etc/my.cnf
?Warnung: Folgendes funktioniert nicht, wenn Sie es in einer Remoteverbindung anwenden:
quelle
Es gibt drei mögliche Ursachen für diese Fehlermeldung
Ursache 2:
von der Standardeinstellung von 30 Sekunden bis 60 Sekunden oder länger
Ursache 3:
quelle
Danke! Es hat funktioniert. Aber mit den mysqldb-Updates wurde die Konfiguration zu:
MySQL Doc
quelle
Sie sollten die Eigenschaften 'interactive_timeout' und 'wait_timeout' in der MySQL-Konfigurationsdatei auf die gewünschten Werte setzen.
quelle
Führen Sie einfach ein MySQL-Upgrade durch, bei dem die innoDB-Engine neu erstellt wird und viele Tabellen neu erstellt werden, die für das ordnungsgemäße Funktionieren von MySQL erforderlich sind, z
performance_schema
.information_schema
etc.Geben Sie den folgenden Befehl in Ihrer Shell ein:
quelle
Ich weiß, es ist alt, aber auf Mac
quelle
Ändern Sie die Lesezeit in Bearbeiten-> Einstellungen-> SQL-Editor-> MySQL-Sitzung
quelle
Deaktivieren Sie bitte die Option Grenzwertzeilen in Bearbeiten → Einstellungen → SQL-Abfragen
weil Sie die Eigenschaften 'interactive_timeout' und 'wait_timeout' in der MySQL-Konfigurationsdatei auf die gewünschten Werte setzen sollten.
quelle
Wenn dieses Problem während der Wiederherstellung einer großen Dump-Datei auftritt und Sie das Problem ausschließen können, dass es irgendetwas mit dem Netzwerk zu tun hat (z. B. Ausführung auf localhost), kann meine Lösung hilfreich sein.
Mein mysqldump enthielt mindestens ein INSERT, das zu groß war, als dass mysql es hätte berechnen können. Sie können diese Variable anzeigen, indem Sie sie
show variables like "net_buffer_length";
in Ihre mysql-cli eingeben . Sie haben drei Möglichkeiten:--skip-extended-insert
, pro Einfügung wird eine Zeile verwendet -> obwohl diese Dumps viel besser zu lesen sind, ist dies nicht für große Dumps> 1 GB geeignet, da sie in der Regel sehr langsam sind--net-buffer_length NR_OF_BYTES
wenn NR_OF_BYTES kleiner als die Netzpufferlänge des Servers ist -> Ich denke, dies ist die beste Lösung, obwohl langsamer kein Neustart des Servers erforderlich ist.Ich habe den folgenden Befehl mysqldump verwendet:
mysqldump --skip-comments --set-charset --default-character-set=utf8 --single-transaction --net-buffer_length 4096 DBX > dumpfile
quelle
Ich habe das gleiche Problem beim Laden einer CSV-Datei. Konvertierte die Datei in .sql.
Mit dem folgenden Befehl kann ich dieses Problem umgehen.
Hoffe das würde helfen.
quelle
Wenn alle anderen Lösungen hier fehlschlagen, überprüfen Sie Ihr Syslog (/ var / log / syslog oder ähnliches), um festzustellen, ob Ihrem Server während der Abfrage der Arbeitsspeicher ausgeht.
Hatte dieses Problem, als innodb_buffer_pool_size zu nahe am physischen Speicher festgelegt wurde, ohne dass eine Auslagerungsdatei konfiguriert war. MySQL empfiehlt für einen datenbankspezifischen Server die Einstellung innodb_buffer_pool_size auf maximal etwa 80% des physischen Speichers . Ich hatte sie auf etwa 90% eingestellt. Der Kernel hat den MySQL-Prozess beendet. Innodb_buffer_pool_size wurde wieder auf ca. 80% verschoben, wodurch das Problem behoben wurde.
quelle
In meinem Fall hat es nicht funktioniert, das Verbindungszeitlimit auf 6000 oder höher einzustellen.
Ich habe gerade getan, was die Werkbank sagt, dass ich tun kann.
In den Mac-Einstellungen -> SQL-Editor -> Gehen Sie zu MySQL-Sitzung -> setzen Sie das Zeitlimit für das Lesen der Verbindung auf 0.
Und es funktioniert 😄
quelle
Ich stand vor dem gleichen Problem. Ich glaube, es passiert, wenn Sie Fremdschlüssel für größere Tabellen haben (was Zeit braucht).
Ich habe versucht, die Anweisung create table erneut ohne die Fremdschlüsseldeklarationen auszuführen, und festgestellt, dass sie funktioniert.
Nachdem ich die Tabelle erstellt hatte, fügte ich die Fremdschlüsseleinschränkungen mit der Abfrage ALTER TABLE hinzu.
Hoffe das wird jemandem helfen.
quelle
Dies ist mir passiert, weil meine innodb_buffer_pool_size größer als die auf dem Server verfügbare RAM-Größe eingestellt war. Die Dinge wurden dadurch unterbrochen und es tritt dieser Fehler auf. Das Update besteht darin, my.cnf mit der richtigen Einstellung für innodb_buffer_pool_size zu aktualisieren.
quelle
Gehen Sie zu Workbench Edit → Einstellungen → SQL Editor → Lesezeitlimit für DBMS-Verbindungen: Bis zu 3000. Der Fehler ist nicht mehr aufgetreten.
quelle
Gehe zu:
Bearbeiten -> Einstellungen -> SQL-Editor
Dort sehen Sie drei Felder in der Gruppe "MySQL Session", in denen Sie jetzt die neuen Verbindungsintervalle (in Sekunden) festlegen können.
quelle
Es stellte sich heraus, dass unsere Firewall-Regel meine Verbindung zu MYSQL blockiert hat. Nachdem die Firewall-Richtlinie aufgehoben wurde, um die Verbindung zuzulassen, konnte ich das Schema erfolgreich importieren.
quelle
Ich hatte das gleiche Problem - aber für mich war die Lösung ein DB-Benutzer mit zu strengen Berechtigungen. Ich musste die
Execute
Fähigkeit auf demmysql
Tisch zulassen . Nachdem ich das zugelassen hatte, hatte ich keine Verbindungsabbrüche mehrquelle
Überprüfen Sie zuerst, ob die Indizes vorhanden sind.
quelle
Ich bin darauf gestoßen, als ich einen gespeicherten Prozess ausgeführt habe, der viele Zeilen in einer Tabelle in der Datenbank erstellt hat. Ich konnte sehen, dass der Fehler direkt nach dem Überschreiten der 30-Sekunden-Grenze auftrat.
Ich habe alle Vorschläge in den anderen Antworten ausprobiert. Ich bin mir jedoch sicher, dass einiges davon geholfen hat. Was für mich wirklich funktioniert hat, war der Wechsel von Workbench zu SequelPro.
Ich vermute, es war eine clientseitige Verbindung, die ich in Workbench nicht erkennen konnte. Vielleicht hilft das auch jemand anderem?
quelle
Wenn Sie SQL Work Bench verwenden, können Sie versuchen, die Indexierung zu verwenden, indem Sie Ihren Tabellen einen Index hinzufügen. Um einen Index hinzuzufügen, klicken Sie auf das Schraubenschlüsselsymbol in der Tabelle. Das Setup für die folgende Tabelle sollte geöffnet werden Klicken Sie auf die Indexansicht, geben Sie einen Indexnamen ein und setzen Sie den Typ auf index. Wählen Sie in den Indexspalten die primäre Spalte in Ihrer Tabelle aus.
Führen Sie den gleichen Schritt für andere Primärschlüssel in anderen Tabellen aus.
quelle
Hier scheint eine Antwort für diejenigen zu fehlen, die SSH verwenden, um eine Verbindung zu ihrer MySQL-Datenbank herzustellen. Sie müssen zwei Stellen überprüfen, nicht 1, wie in anderen Antworten vorgeschlagen:
Workbench-Bearbeitung → Einstellungen → SQL-Editor → DBMS
Workbench-Bearbeitung → Einstellungen → SSH → Zeitüberschreitungen
Meine Standard-SSH-Zeitüberschreitungen waren sehr niedrig eingestellt und verursachten einige (aber anscheinend nicht alle) meiner Zeitüberschreitungsprobleme. Vergessen Sie danach nicht, MySQL Workbench neu zu starten!
Zuletzt kann es sich lohnen, Ihren DB-Administrator zu kontaktieren und ihn zu bitten, die Eigenschaften wait_timeout und interaktives_timeout in mysql selbst über my.conf + mysql restart zu erhöhen oder einen globalen Satz durchzuführen, wenn ein Neustart von mysql keine Option ist.
Hoffe das hilft!
quelle
Drei Dinge zu beachten und sicherzustellen:
Antworten:
quelle
Überprüfen Sie über
Hoffe das hilft
quelle
Dies bedeutet normalerweise, dass Sie "Inkompatibilitäten mit der aktuellen Version von MySQL Server" haben, siehe mysql_upgrade. Ich bin auf dasselbe Problem gestoßen und musste einfach Folgendes ausführen:
mysql_upgrade --password In der Dokumentation heißt es, dass "mysql_upgrade jedes Mal ausgeführt werden sollte, wenn Sie MySQL aktualisieren".
quelle