Hmmmm.. Zdá se, že jste trefili NE-A-BUG. :)
Pokud změníte globální systémovou proměnnou, hodnota se zapamatuje a použije pro nová připojení, dokud se server nerestartuje. (Chcete-li, aby nastavení globální systémové proměnné bylo trvalé, měli byste ji nastavit v souboru voleb.) Změna je viditelná pro každého klienta, který přistupuje k této globální proměnné. Změna však ovlivní odpovídající proměnnou relace pouze pro klienty, kteří se připojí po změně. Změna globální proměnné neovlivní proměnnou relace u žádného aktuálně připojeného klienta (ani u klienta, který vydává příkaz SET GLOBAL).
Odkazujte také na toto. Přečtěte si vysvětlení Shane Bestera.
Měli byste přejít ze souboru my.ini/my.cnf a restartovat server, aby se nastavení max_allowed_packet projevilo.
Po spuštění
set global max_allowed_packet=1000000000;
musíte restartovat mysql před
SHOW VARIABLES LIKE 'max_allowed_packet'
zobrazí novou hodnotu.
Mám tento problém při restartování mysql prostřednictvím systémových předvoleb MAC OSX a hodnota se nezměnila. Tedy přihlášením do mysql přes konzoli
mysql -u root -p
Zdá se, že jeho změna a restartování mySql fungovalo. I když to mohl být vtip s OS X.
Pro uživatele s konfigurací MariaDb může být problém v tom, že max_allowed_packet proměnná je přepsána konfiguračním souborem nazvaným později.
V mém případě jsem se pokusil importovat databázi a server mi odpověděl:CHYBA 2006 (HY000) na řádku 736:MySQL server zmizel
Zjistil jsem, že soubor:
/etc/mysql/mariadb.conf.d/50-server.cnf
se nazývá později
/etc/mysql/conf.d/mysql.cnf
Snažil jsem se průběžně měnit v souboru "mysql.cnf", ale hodnota byla přepsána v "50-server.cnf".
Řešením je tedy zadat soubor
/etc/mysql/mariadb.conf.d/50-server.cnf
a místo"max_allowed_packet =16M" uveďte požadovanou hodnotu jako příklad"max_allowed_packet =64M"