Som sagt här :
Två vanligaste orsaker (och korrigeringar) till att MySQL-servern har försvunnit (fel 2006) är:
Servern tog timeout och stängde anslutningen. Så här åtgärdar du:
kontrollera att variabeln wait_timeout i din mysqlds my.cnf-konfigurationsfil är tillräckligt stor. På Debian:
sudo nano /etc/mysql/my.cnf
, ställ inwait_timeout = 600
sekunder (du kan försvaga/minska detta värde när fel 2006 är borta), sedansudo /etc/init.d/mysql restart
. Jag kollade inte, men standardvärdet forwait_timeout kan vara runt 28800 sekunder (8 timmar).Servern tappade ett felaktigt eller för stort paket. Om mysqld får ett paket som är för stort eller felaktigt, antar det att något har gått fel med klienten och stänger anslutningen. Du kan öka gränsen för maximal paketstorlek genom att öka värdet på max_allowed_packet i filen my.cnf. På Debian:
sudo nano /etc/mysql/my.cnf
, ställ inmax_allowed_packet = 64M
(du kan försvaga/minska detta värde när fel 2006 är borta), sedansudo /etc/init.d/mysql restart
.
Redigera:
Observera att MySQL-alternativfiler inte har sina kommandon redan tillgängliga som kommentarer (som i php.ini till exempel). Så du måste skriva in alla ändringar/tweak i my.cnf
eller my.ini
och placera dem i mysql/data
katalog eller i någon av de andra sökvägarna, under rätt grupp av alternativ som [client]
, [myslqd]
, etc. Till exempel:
[mysqld]
wait_timeout = 600
max_allowed_packet = 64M
Starta sedan om servern. För att få deras värden, skriv in mysql-klienten:
> select @@wait_timeout;
> select @@max_allowed_packet;