Problembeschreibung: Fehlermeldung:
MySQL begrenzt die Größe der vom Server akzeptierten Datenpakete entsprechend der Konfigurationsdatei. Manchmal ist die Größe des Datenpakets beim Einfügen, Aktualisieren oder Abfragen durch den Parameter max_allowed_packet begrenzt, was dazu führt, dass der Vorgang fehlschlägt. Sehen Sie sich den Parameter max_allowed_packet an: Auf dem Client ausführen: VARIABLEN wie „%max_allowed_packet%“ anzeigen; Die Ergebnisse sind wie folgt: +--------------------+------------+ | Variablenname | Wert | +--------------------+--------------------+ | maximal zulässiges Paket | 1024 | +--------------------+--------------------+ Änderungsmethode: 1. Um die Konfigurationsdatei zu ändern, können Sie my.cnf (my.ini unter Windows) bearbeiten und sie im Abschnitt [mysqld] oder im Abschnitt zur MySQL-Serverkonfiguration ändern. Wenn my.cnf nicht gefunden werden kann, können Sie Suchen Sie die Datei my.cnf. Unter Linux befindet sich die Datei in /etc/. 2. Ändern Sie in der MySQL-Befehlszeile setze global max_allowed_packet = 2*1024*1024*10 //Der Wert hier ist die Anzahl der Bytes. Wenn er auf 20 M geändert wird, müssen Sie sich erneut beim Client anmelden, damit die Änderung wirksam wird. Hinweis: Nachdem der Client den Befehl zum Ändern verwendet hat, wird dies nur vorübergehend wirksam. Nach dem Neustart von MySQL wird der ursprüngliche Wert wiederhergestellt. Lösung für den von MySQL unter Linux gemeldeten Fehler „Paket für Abfrage ist zu groß (1040 > 1024)“ Das Projekt lief vorher normal, aber plötzlich traten in den letzten Tagen immer wieder Abfragefehler auf. Ich habe mir die Protokolle angesehen und festgestellt, dass die Fehlermeldung „Paket für Abfrage ist zu groß (1040 > 1024)“ angezeigt wurde. Sie können diesen Wert auf dem Server ändern, indem Sie die Variable „max_allowed_packet“ festlegen. Ich habe bei Baidu nach der Lösung gesucht und den Lösungsverlauf aufgezeichnet. 1. Gründe Das von der Abfragedatenbank zurückgegebene Datenpaket ist zu groß und überschreitet den Standardwert. VARIABLEN wie „%max_allowed_packet%“ anzeigen; 2. Ändern Sie die standardmäßig maximal zulässige Paketgröße 2.1 Methode 1: Befehlsmethode (1). Geben Sie den folgenden Befehl in der MySQL-Konsole ein, um max_allowed_packet auf 20M zu setzen
(2) Beenden Sie MySQL, starten Sie den MySQL-Dienst neu und melden Sie sich dann bei MySQL an, um zu überprüfen, ob max_allowed_packet erfolgreich geändert wurde.
2.2 Methode 2: Ändern der Konfigurationsdatei my.cnf
(2). Fügen Sie unten [mysqId] hinzu
2.2 Beenden Sie den Editiermodus und starten Sie MySQL neu. Folgen Sie den Schritten in 2.1 (2) 3. Hinweis Nach der Konfiguration habe ich max_allowed_packet abgefragt und festgestellt, dass es 16777216 war, was eigentlich 16*1024*1024 ist, nicht die erwarteten 20 M. Also habe ich noch einmal nachgesehen und festgestellt, dass die Speicherkapazität des Servers möglicherweise nicht ausreicht, da Java einen großen Teil davon belegt, sodass MySQL die Parameter möglicherweise automatisch zurücksetzt. Daher kann es in einigen Fällen sein, dass MySQL den Parameter „max_allowed_packet“ nach einer Weile automatisch auf den Standardwert 1024 zurücksetzt, nachdem Sie ihn geändert haben, und derselbe Fehler erneut auftritt. |
>>: Angular-Leistungsoptimierung: Komponenten von Drittanbietern und Lazy-Loading-Technologie
Dieser Blog ist eine Arbeitsnotiz Umfeld: Nginx-V...
Vorwort Bei der täglichen Codeentwicklung gibt es...
Inhaltsverzeichnis Bindungsklasse Inline-Stile bi...
Wir wissen, dass die in JS am häufigsten verwende...
In diesem Artikelbeispiel wird der spezifische Co...
Auch wenn nicht Halloween ist, lohnt es sich, sic...
In diesem Artikel finden Sie das Installations-Tu...
Die Verwendung von „Computed“ in vue3. Da vue3 mi...
In diesem Artikelbeispiel wird der spezifische JS...
YSlow ist ein von Yahoo USA entwickeltes Plug-in ...
Sicht: Wenn eine temporäre Tabelle wiederholt ver...
Vorwort Die Schlüsselwörter von MySQL und Oracle ...
Automatische Aktualisierung der Webseite: Fügen Si...
Bereiten Sie eine CentOS6-Installationsdiskette (...
Derzeit verfügt Docker über einen offiziellen Mir...