MySQL server has gone away錯誤提示解決方法
更新時間:2008年11月11日 14:03:09 作者:
今天遇到類似的情景,MySQL只是冷冷的說:MySQL server has gone away。
大概瀏覽了一下,主要可能是因為以下幾種原因:
一種可能是發(fā)送的SQL語句太長,以致超過了max_allowed_packet的大小,如果是這種原因,你只要修改my.cnf,加大max_allowed_packet的值即可。
還有一種可能是因為某些原因?qū)е鲁瑫r,比如說程序中獲取數(shù)據(jù)庫連接時采用了Singleton的做法,雖然多次連接數(shù)據(jù)庫,但其實使用的都是同一個連接,而且程序中某兩次操作數(shù)據(jù)庫的間隔時間超過了wait_timeout(SHOW STATUS能看到此設(shè)置),那么就可能出現(xiàn)問題。最簡單的處理方式就是把wait_timeout改大,當然你也可以在程序里時不時順手mysql_ping()一下,這樣MySQL就知道它不是一個人在戰(zhàn)斗。
解決MySQL server has gone away
1、應(yīng)用程序(比如PHP)長時間的執(zhí)行批量的MYSQL語句。最常見的就是采集或者新舊數(shù)據(jù)轉(zhuǎn)化。
解決方案:
在my.cnf文件中添加或者修改以下兩個變量:
wait_timeout=2880000
interactive_timeout = 2880000
關(guān)于兩個變量的具體說明可以google或者看官方手冊。如果不能修改my.cnf,則可以在連接數(shù)據(jù)庫的時候設(shè)置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、執(zhí)行一個SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。比如,圖片數(shù)據(jù)的處理
解決方案:
在my.cnf文件中添加或者修改以下變量:
max_allowed_packet = 10M
(也可以設(shè)置自己需要的大小)
max_allowed_packet
參數(shù)的作用是,用來控制其通信緩沖區(qū)的最大長度。
一種可能是發(fā)送的SQL語句太長,以致超過了max_allowed_packet的大小,如果是這種原因,你只要修改my.cnf,加大max_allowed_packet的值即可。
還有一種可能是因為某些原因?qū)е鲁瑫r,比如說程序中獲取數(shù)據(jù)庫連接時采用了Singleton的做法,雖然多次連接數(shù)據(jù)庫,但其實使用的都是同一個連接,而且程序中某兩次操作數(shù)據(jù)庫的間隔時間超過了wait_timeout(SHOW STATUS能看到此設(shè)置),那么就可能出現(xiàn)問題。最簡單的處理方式就是把wait_timeout改大,當然你也可以在程序里時不時順手mysql_ping()一下,這樣MySQL就知道它不是一個人在戰(zhàn)斗。
解決MySQL server has gone away
1、應(yīng)用程序(比如PHP)長時間的執(zhí)行批量的MYSQL語句。最常見的就是采集或者新舊數(shù)據(jù)轉(zhuǎn)化。
解決方案:
在my.cnf文件中添加或者修改以下兩個變量:
wait_timeout=2880000
interactive_timeout = 2880000
關(guān)于兩個變量的具體說明可以google或者看官方手冊。如果不能修改my.cnf,則可以在連接數(shù)據(jù)庫的時候設(shè)置CLIENT_INTERACTIVE,比如:
sql = "set interactive_timeout=24*3600";
mysql_real_query(...)
2、執(zhí)行一個SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。比如,圖片數(shù)據(jù)的處理
解決方案:
在my.cnf文件中添加或者修改以下變量:
max_allowed_packet = 10M
(也可以設(shè)置自己需要的大小)
max_allowed_packet
參數(shù)的作用是,用來控制其通信緩沖區(qū)的最大長度。
相關(guān)文章
MySQL數(shù)據(jù)庫遷移OpenGauss數(shù)據(jù)庫解析
這篇文章主要介紹了MySQL數(shù)據(jù)庫遷移OpenGauss數(shù)據(jù)庫解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09rpm -ivh方式安裝mysql并修改數(shù)據(jù)存儲位置的實現(xiàn)
在Linux環(huán)境下進行MySQL的安裝可以使用不同的方式,但在本文中我們將關(guān)注一種特定的方式,即通過RPM包的方式進行安裝,本文主要介紹了rpm -ivh方式安裝mysql并修改數(shù)據(jù)存儲位置的實現(xiàn),感興趣的可以了解一下2023-09-09mysql 5.7安裝 MySQL 服務(wù)無法啟動但是服務(wù)沒有報告任何錯誤
這篇文章主要介紹了mysql 5.7安裝 MySQL 服務(wù)無法啟動但是服務(wù)沒有報告任何錯誤的相關(guān)資料,需要的朋友可以參考下2017-04-04Windows下MySQL 5.6安裝及配置詳細圖解(大圖版)
這篇文章主要介紹了Windows下MySQL 5.6安裝及配置詳細圖解(大圖版),需要的朋友可以參考下2016-04-04如何給mysql數(shù)據(jù)庫重新命名(操作步驟)
這篇文章主要介紹了如何給mysql數(shù)據(jù)庫重新命名,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05