MySQL server has gone away的問題解決
一、可能是mysql連接超時(shí)
原因:mysql長(zhǎng)連接時(shí),很長(zhǎng)時(shí)間沒有新的請(qǐng)求發(fā)起到達(dá)服務(wù)端,當(dāng)這個(gè)時(shí)間超過配置的最大超時(shí)時(shí)間時(shí),mysql就會(huì)強(qiáng)行關(guān)閉鏈接。此后再通過這個(gè)connection發(fā)起查詢的時(shí)候,就會(huì)報(bào)錯(cuò)server has gone away。
解決辦法:可以將timeout時(shí)間設(shè)置長(zhǎng)一點(diǎn):
set global wait_timeout =3600 ; //非交互式鏈接
set global interactive_timeout=3600 ; //交互式鏈接
但是這樣會(huì)長(zhǎng)時(shí)間占用mysql鏈接,消耗資源。
二、可能是發(fā)送的SQL語句太長(zhǎng)
原因:mysql服務(wù)器端和客戶端在一次傳送數(shù)據(jù)包的過程中,數(shù)據(jù)包的大小大于max_allowed_packet設(shè)置的值。
解決辦法:可以將max_allowed_packet值設(shè)置大一點(diǎn),set global max_allowed_packet=3600。
三、可能MySQL 服務(wù)宕了
可以查看mysql的運(yùn)行時(shí)長(zhǎng):show global status like 'uptime'; 。來判斷是否屬于這個(gè)原因引起的。
uptime很長(zhǎng)說明mysql運(yùn)行很長(zhǎng)時(shí)間了,排除mysql服務(wù)宕機(jī)的可能。
擴(kuò)展:
應(yīng)用程序長(zhǎng)時(shí)間的執(zhí)行批量的MYSQL語句。執(zhí)行一個(gè)SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。比如,圖片數(shù)據(jù)的處理。都容易引起MySQL server has gone away。
解決MySQL server has gone away :
1、應(yīng)用程序長(zhǎng)時(shí)間的執(zhí)行批量的MYSQL語句。最常見的就是采集或者新舊數(shù)據(jù)轉(zhuǎn)化。或者長(zhǎng)時(shí)間閑置數(shù)據(jù)庫(kù)連接
解決方案:
在my.cnf/my.ini文件中添加或者修改以下兩個(gè)變量:
wait_timeout=2880000 interactive_timeout = 2880000
如果不能修改my.cnf/my.ini,則可以在連接數(shù)據(jù)庫(kù)的時(shí)候設(shè)置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600"; mysql_real_query(...)
2、執(zhí)行一個(gè)SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。比如,圖片數(shù)據(jù)的處理
解決方案:
在my.cnf/my.ini文件中添加或者修改以下變量:
max_allowed_packet = 10M(也可以設(shè)置自己需要的大小)
max_allowed_packet 參數(shù)的作用是,用來控制其通信緩沖區(qū)的最大長(zhǎng)度。
到此這篇關(guān)于MySQL server has gone away的問題解決的文章就介紹到這了,更多相關(guān)MySQL server has gone away內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL分組的時(shí)候遇到ONLY_FULL_GROUP_BY報(bào)錯(cuò)問題及解決方案
這篇文章主要介紹了MySQL分組的時(shí)候遇到ONLY_FULL_GROUP_BY報(bào)錯(cuò)問題及解決方案,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04MySQL?數(shù)據(jù)庫(kù)的約束及數(shù)據(jù)表的設(shè)計(jì)原理
這篇文章主要介紹了MySQL?數(shù)據(jù)庫(kù)的約束及數(shù)據(jù)表的設(shè)計(jì)原理,數(shù)據(jù)庫(kù)中的約束即是對(duì)插入數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行限定,為了保證數(shù)據(jù)的有效性和完整性,下面一起來了解具體的詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2021-12-12Mysql觸發(fā)器在PHP項(xiàng)目中用來做信息備份、恢復(fù)和清空
這篇文章主要介紹了Mysql觸發(fā)器在PHP項(xiàng)目中用來做信息備份、恢復(fù)和清空的相關(guān)資料,需要的朋友可以參考下2017-11-11mysql修改數(shù)據(jù)庫(kù)引擎的幾種方法總結(jié)
這篇文章主要給大家介紹了關(guān)于mysql修改數(shù)據(jù)庫(kù)引擎的相關(guān)資料,包括使用ALTERTABLE語句、更改默認(rèn)存儲(chǔ)引擎、使用MySQLWorkbench、導(dǎo)出和導(dǎo)入數(shù)據(jù)以及編寫腳本批量修改,每種方法都有其優(yōu)缺點(diǎn)和適用場(chǎng)景,需要的朋友可以參考下2024-11-11Mysql快速插入千萬條數(shù)據(jù)的實(shí)戰(zhàn)教程
這篇文章主要給大家介紹了關(guān)于Mysql快速插入千萬條數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03