GNU/Linux >> LINUX-Kenntnisse >  >> Linux

SET GLOBAL max_allowed_packet funktioniert nicht

Hmmmm.. Sie haben anscheinend diesen NOT-A-BUG getroffen. :)

Wenn Sie eine globale Systemvariable ändern, wird der Wert gespeichert und für neue Verbindungen verwendet, bis der Server neu gestartet wird. (Um eine Einstellung einer globalen Systemvariablen permanent zu machen, sollten Sie sie in einer Optionsdatei festlegen.) Die Änderung ist für jeden Client sichtbar, der auf diese globale Variable zugreift. Die Änderung betrifft die entsprechende Sitzungsvariable jedoch nur für Clients, die nach der Änderung eine Verbindung herstellen. Die Änderung der globalen Variablen wirkt sich nicht auf die Sitzungsvariable für einen derzeit verbundenen Client aus (nicht einmal auf die des Clients, der die SET GLOBAL-Anweisung ausgibt).

Verweisen Sie auch darauf. Lesen Sie die Erklärung von Shane Bester.

Sie sollten von der Datei my.ini/my.cnf wechseln und den Server neu starten, damit die Einstellung max_allowed_packet wirksam wird.


Nach dem Ausführen von

set global max_allowed_packet=1000000000;

Sie müssen mysql vor

neu starten
SHOW VARIABLES LIKE 'max_allowed_packet'

zeigt den neuen Wert an.

Ich habe dieses Problem, wenn ich mysql über die MAC OSX-Systemeinstellungen neu starte und der Wert sich nicht geändert hat. Also indem Sie sich über die Konsole bei mysql anmelden

mysql -u root -p

es zu ändern und dann mySql neu zu starten schien zu funktionieren. Könnte aber eine Macke von OS X gewesen sein.


Für diejenigen mit einer MariaDb-Konfiguration könnte das Problem darin bestehen, dass das max_allowed_packet Variable wird durch eine später aufgerufene Konfigurationsdatei überschrieben.

In meinem Fall habe ich versucht, eine Datenbank zu importieren, und der Server hat mir geantwortet:FEHLER 2006 (HY000) in Zeile 736:MySQL-Server ist verschwunden

Ich habe entdeckt, dass die Datei:

/etc/mysql/mariadb.conf.d/50-server.cnf

wird später aufgerufen

/etc/mysql/conf.d/mysql.cnf

Ich habe versucht, die Datei "mysql.cnf" kontinuierlich zu ändern, aber der Wert in "50-server.cnf" wurde überschrieben.

Die Lösung besteht also darin, die Datei einzugeben

/etc/mysql/mariadb.conf.d/50-server.cnf

und statt "max_allowed_packet =16M" Geben Sie den gewünschten Wert als Beispiel ein "max_allowed_packet =64M"


Linux
  1. Richten Sie die MySQL-Quellreplikatreplikation ein

  2. Umgebungsvariable TERM nicht gesetzt

  3. Systemweite globale Variable / Semaphor / Mutex in C++/Linux?

  4. Wo wird die PATH-Variable in Ubuntu gesetzt?

  5. Warum funktioniert Bash `(())` nicht innerhalb von `[[]]`?

So richten Sie die MySQL-Master-Slave-Replikation ein

So legen Sie die Umgebungsvariable in Windows fest

So legen Sie Umgebungsvariablen in MacOS fest

So setzen Sie die Umgebungsvariable in Bash

Warum Linux Bridge nicht funktioniert

Mysql-Datenbank wiederherstellen - mysql/mysqldump ergibt Tabelle <Datenbank>. <Tabellenname> existiert nicht (1146)