MySQL server has gone away報(bào)錯原因分析

原因1. MySQL 服務(wù)宕了

判斷是否屬于這個原因的方法很簡單冀值,執(zhí)行以下命令,查看mysql的運(yùn)行時(shí)長

$ mysql -uroot -p -e "show global status like 'uptime';"

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Uptime? ? ? ? | 68928 |

+---------------+-------+

1 row in set (0.04 sec)

或者查看MySQL的報(bào)錯日志杯道,看看有沒有重啟的信息

$ tail /var/log/mysql/error.log

130101 22:22:30 InnoDB: Initializing buffer pool, size = 256.0M

130101 22:22:30 InnoDB: Completed initialization of buffer pool

130101 22:22:30 InnoDB: highest supported file format is Barracuda.

130101 22:22:30 InnoDB: 1.1.8 started; log sequence number 63444325509

130101 22:22:30 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306

130101 22:22:30 [Note]? - '127.0.0.1' resolves to '127.0.0.1';

130101 22:22:30 [Note] Server socket created on IP: '127.0.0.1'.

130101 22:22:30 [Note] Event Scheduler: Loaded 0 events

130101 22:22:30 [Note] /usr/sbin/mysqld: ready for connections.

Version: '5.5.28-cll'? socket: '/var/lib/mysql/mysql.sock'? port: 3306? MySQL Community Server (GPL)

如果uptime數(shù)值很大,表明mysql服務(wù)運(yùn)行了很久了责蝠。說明最近服務(wù)沒有重啟過党巾。

如果日志沒有相關(guān)信息萎庭,也表名mysql服務(wù)最近沒有重啟過,可以繼續(xù)檢查下面幾項(xiàng)內(nèi)容齿拂。

2. 連接超時(shí)

如果程序使用的是長連接驳规,則這種情況的可能性會比較大。

即署海,某個長連接很久沒有新的請求發(fā)起吗购,達(dá)到了server端的timeout,被server強(qiáng)行關(guān)閉叹侄。

此后再通過這個connection發(fā)起查詢的時(shí)候巩搏,就會報(bào)錯server has gone away

$ mysql -uroot -p -e "show global variables like '%timeout';"

+----------------------------+----------+

| Variable_name? ? ? ? ? ? ? | Value? ? |

+----------------------------+----------+

| connect_timeout? ? ? ? ? ? | 30? ? ? |

| delayed_insert_timeout? ? | 300? ? ? |

| innodb_lock_wait_timeout? | 50? ? ? |

| innodb_rollback_on_timeout | OFF? ? ? |

| interactive_timeout? ? ? ? | 28800? ? |

| lock_wait_timeout? ? ? ? ? | 31536000 |

| net_read_timeout? ? ? ? ? | 30? ? ? |

| net_write_timeout? ? ? ? ? | 60? ? ? |

| slave_net_timeout? ? ? ? ? | 3600? ? |

| wait_timeout? ? ? ? ? ? ? | 28800? ? |

+----------------------------+----------+

mysql> SET SESSION wait_timeout=5;

## Wait 10 seconds

mysql> SELECT NOW();

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id:? ? 132361

Current database: *** NONE ***

+---------------------+

| NOW()? ? ? ? ? ? ? |

+---------------------+

| 2013-01-02 11:31:15 |

+---------------------+

1 row in set (0.00 sec)

3. 進(jìn)程在server端被主動kill

這種情況和情況2相似,只是發(fā)起者是DBA或者其他job趾代。發(fā)現(xiàn)有長時(shí)間的慢查詢執(zhí)行kill xxx導(dǎo)致。

$ mysql -uroot -p -e "show global status like 'com_kill'"

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Com_kill? ? ? | 0? ? |

+---------------+-------+

4. Your SQL statement was too large.

當(dāng)查詢的結(jié)果集超過 max_allowed_packet 也會出現(xiàn)這樣的報(bào)錯丰辣。定位方法是打出相關(guān)報(bào)錯的語句撒强。

用select * into outfile 的方式導(dǎo)出到文件,查看文件大小是否超過 max_allowed_packet 笙什,如果超過則需要調(diào)整參數(shù)飘哨,或者優(yōu)化語句。

mysql> show global variables like 'max_allowed_packet';

+--------------------+---------+

| Variable_name? ? ? | Value? |

+--------------------+---------+

| max_allowed_packet | 1048576 |

+--------------------+---------+

1 row in set (0.00 sec)

修改參數(shù):

mysql> set global max_allowed_packet=1024*1024*16;

mysql> show global variables like 'max_allowed_packet';

+--------------------+----------+

| Variable_name? ? ? | Value? ? |

+--------------------+----------+

| max_allowed_packet | 16777216 |

+--------------------+----------+

1 row in set (0.00 sec)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末琐凭,一起剝皮案震驚了整個濱河市芽隆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌统屈,老刑警劉巖胚吁,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異愁憔,居然都是意外死亡腕扶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進(jìn)店門吨掌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來半抱,“玉大人,你說我怎么就攤上這事膜宋×蓿” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵秋茫,是天一觀的道長史简。 經(jīng)常有香客問我,道長学辱,這世上最難降的妖魔是什么乘瓤? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任环形,我火速辦了婚禮,結(jié)果婚禮上衙傀,老公的妹妹穿的比我還像新娘抬吟。我一直安慰自己,他們只是感情好统抬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布火本。 她就那樣靜靜地躺著,像睡著了一般聪建。 火紅的嫁衣襯著肌膚如雪钙畔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天金麸,我揣著相機(jī)與錄音擎析,去河邊找鬼。 笑死挥下,一個胖子當(dāng)著我的面吹牛揍魂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棚瘟,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼现斋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了偎蘸?” 一聲冷哼從身側(cè)響起庄蹋,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎迷雪,沒想到半個月后限书,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡振乏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年蔗包,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慧邮。...
    茶點(diǎn)故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡调限,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出误澳,到底是詐尸還是另有隱情耻矮,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布忆谓,位于F島的核電站裆装,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哨免,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一茎活、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琢唾,春花似錦载荔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至普办,卻和暖如春工扎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背衔蹲。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工肢娘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舆驶。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓蔬浙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贞远。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容