MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案
問題描述:
在確保網(wǎng)絡(luò)沒有問題的情況下,服務(wù)器正常運(yùn)行一段時(shí)間后,數(shù)據(jù)庫拋出了異常"Lost connection to MySQL server during query",字面意思就是在查詢過程中丟失連接到MySQL服務(wù)器,拋去網(wǎng)絡(luò)原因,基本上就是數(shù)據(jù)庫配置項(xiàng)問題。
解決方案:
- 檢查
max_allowed_packet,max_allowed_packet指mysql服務(wù)器端和客戶端在一次傳送數(shù)據(jù)包的過程當(dāng)中最大允許的數(shù)據(jù)包大小。如果超過了設(shè)置的最大長度,則會(huì)導(dǎo)致數(shù)據(jù)讀寫失敗。
執(zhí)行以下SQL查詢配置項(xiàng)的值,單位是字節(jié):
show VARIABLES like '%max_allowed_packet%';
根據(jù)情況將配置項(xiàng)的值改為適合項(xiàng)目的使用大小,以64MB為例子
set global max_allowed_packet = 64*1024*1024*;
也可以通過修改配置文件,Linux修改my.cnf 文件,Windows修改 my.ini 文件,推薦通過文件修改,需要重啟mysql
[mysqld] max_allowed_packet = 64M
通過命令行修改只能臨時(shí)生效,如果下次數(shù)據(jù)庫重啟后對(duì)應(yīng)的配置就會(huì)又復(fù)原了,因?yàn)橹貑⒌臅r(shí)候加載的是配置文件里面的配置項(xiàng)
- 檢查
wait_timeout,wait_timeout 默認(rèn)是28800秒,即mysql鏈接在無操作8個(gè)小時(shí)后被自動(dòng)關(guān)閉,如果服務(wù)器長時(shí)間處于空閑狀態(tài),再次訪問mysql數(shù)據(jù)庫的時(shí)候,數(shù)據(jù)庫會(huì)拒絕訪問。
執(zhí)行以下SQL查詢配置,單位毫秒
SHOW VARIABLES LIKE 'wait_timeout';
修改參數(shù)SQL
set global wait_timeout=28800 * 2;
也可以通過修改配置文件,Linux修改my.cnf 文件,Windows修改 my.ini 文件,推薦通過文件修改,需要重啟mysql
[mysqld] wait_timeout = 57600
以上就是MySQL報(bào)錯(cuò)Lost connection to MySQL server during query的解決方案的詳細(xì)內(nèi)容,更多關(guān)于MySQL server during query的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理
這篇文章主要介紹了MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-08-08
MySQL檢查和清理不可見字符的實(shí)現(xiàn)步驟
在導(dǎo)入Excel表格到MySQL時(shí),由于未進(jìn)行數(shù)據(jù)清理,導(dǎo)致字段a出現(xiàn)了大量不可見字符的問題,這些字符包括空格、制表符、換行符和BOM頭,下面就來介紹一下如何清理這些字符,感興趣的可以了解一下2026-02-02
SELECT… FOR UPDATE 排他鎖的實(shí)現(xiàn)
本文主要介紹了SELECT… FOR UPDATE 排他鎖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
MYSQL數(shù)據(jù)表損壞的原因分析和修復(fù)方法小結(jié)(推薦)
MYSQL數(shù)據(jù)表損壞的原因分析和修復(fù)方法小結(jié),碰到的朋友可以參考,下面整理一些比較全,希望對(duì)大家有所幫助。2011-01-01
MySQL 中 HAVING 子句的深度解析與實(shí)戰(zhàn)攻略
本文深入解析MySQL中HAVING子句的使用,HAVING用于分組后過濾,它作用于GROUP BY分組后的結(jié)果集,允許我們基于聚合函數(shù)的結(jié)果進(jìn)行條件篩選,感興趣的朋友跟隨小編一起看看吧2025-10-10
MySQL中將逗號(hào)分隔的字段轉(zhuǎn)換為多行數(shù)據(jù)的方法
在我們的實(shí)際開發(fā)中,經(jīng)常需要存儲(chǔ)一些字段,它們使用像,?-?等連接符進(jìn)行連接,在查詢過程中,有時(shí)需要將這些字段使用連接符分割,然后查詢多條數(shù)據(jù),今天,我們將使用一個(gè)實(shí)際的生產(chǎn)場景來詳細(xì)解釋這個(gè)解決方案,需要的朋友可以參考下2024-04-04

