max_allowed_packet in mySQL

8

Ich habe versucht , alle drei Verfahren erläutert hier zu max_allowed_packet. Aber niemand ändert seinen Wert in meinem MySQL 5.6.

Ich benutze show variables like '%max_allowed_packet%', um seinen aktuellen Wert zu sehen. Aber das ist es immer 12582912.

Nur das Ändern des Werts in my.ini ist wirksam.

Was ist falsch?

PHPst
quelle

Antworten:

17

Sie haben zwei Werte max_allowed_packetin MySQL:

  • eine auf der Client-Seite: [mysql]Abschnitt [mysqldump],, [client]und mehr.
  • eine auf der Serverseite: [mysqld]Abschnitt.

Der Wert, den max_allowed_packetSie mit dem Befehl sehen, show variables like 'max_allowed_packet';ist der auf der Serverseite .

Um diesen Wert zu erhöhen, müssen Sie beide Seiten erhöhen: in Ihrer Serverkonfigurationsdatei ( [mysqld]Abschnitt in Ihrer my.ini-Datei) und in Ihrer Client-Konfigurationsdatei (ob Ihre [client]oder [mysql]Abschnitt in Ihrer my.ini-Datei).

Diese Einstellung kann auf der Serverseite geändert werden, ohne den Server neu zu starten, wenn Sie die SUPERBerechtigung mit diesem Befehl haben : mysql> SET GLOBAL max_allowed_packet = numeric;.

Vergessen Sie nicht, den ' numerischen ' Wert durch einen numerischen Wert zu ändern . Vergessen Sie nicht, auch Ihre Konfigurationsdatei zu ändern, da dieser Wert sonst beim Neustart zurückgesetzt wird.

riouj
quelle
5

Was für mich funktioniert hat war

  1. Starten Sie MySQL Workbench 5.6 (getestet bis Version 6.3)
  2. Gehen Sie im Navigator zur Instanzoptionsdatei. Wenn die Datei nicht gefunden werden kann, erstellen Sie sie selbst unter /etc/my.cnf:
# /etc/my.cnf
[mysqld]
  1. Klicken Sie auf die Registerkarte Netzwerk
  2. Geben Sie 16M (oder eine beliebige Größe) in das max_allowed_packetBearbeitungsfeld ein, klicken Sie auf Übernehmen und starten Sie MySQL neu
  3. SHOW VARIABLES LIKE 'max_allowed_packet'; wird jetzt 16777216 geben.

Alternative

Sie können die max_allowed_packetdirekt in der my.cnfDatei wie folgt einstellen :

# /etc/my.cnf
[mysqld]
max_allowed_packet=16M
C oneil
quelle
3

MAX. ERLAUBTE PAKETDOKUMENTATION

Dieser Wert gibt die maximale Größe eines Pakets an. Der Paketnachrichtenpuffer wird auf net_buffer_length Bytes initialisiert, kann jedoch bei Bedarf auf max_allowed_packet Bytes anwachsen. Dieser Wert ist standardmäßig klein, um große (möglicherweise falsche) Pakete abzufangen. Sie müssen diesen Wert erhöhen, wenn Sie große BLOB-Spalten oder lange Zeichenfolgen verwenden. Es sollte so groß sein wie das größte BLOB, das Sie verwenden möchten.

Diese Servervariable kann durch Ausführen einer Abfrage global festgelegt werden.

Wenn Sie es jedoch nicht in der my.ini/my.cnfDatei ändern , wird der Wert beim Neustart des Servers zurückgesetzt, auch wenn Sie ihn global festlegen.

So ändern Sie die Einstellung für alle Benutzer, bis der Server neu gestartet wird:

SET GLOBAL max_allowed_packet = 1073741824;

Peter Venderberghe
quelle