国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL server has gone away 問題的解決方法

2024-07-24 12:43:44
字體:
來源:轉載
供稿:網友

mysql出現ERROR : (2006, 'MySQL server has gone away') 的問題意思就是指client和MySQL server之間的鏈接斷開了。

造成這樣的原因一般是sql操作的時間過長,或者是傳送的數據太大(例如使用insert ... values的語句過長, 這種情況可以通過修改max_allowed_packed的配置參數來避免,也可以在程序中將數據分批插入)。

產生這個問題的原因有很多,總結下網上的分析:

原因一. MySQL 服務宕了

判斷是否屬于這個原因的方法很簡單,進入mysql控制臺,查看mysql的運行時長

mysql> show global status like 'uptime';
+---------------+---------+
| Variable_name | Value   |
+---------------+---------+
| Uptime        | 3414707 |
+---------------+---------+

1 row in set或者查看MySQL的報錯日志,看看有沒有重啟的信息

如果uptime數值很大,表明mysql服務運行了很久了。說明最近服務沒有重啟過。
如果日志沒有相關信息,也表名mysql服務最近沒有重啟過,可以繼續檢查下面幾項內容。

原因二. mysql連接超時

即某個mysql長連接很久沒有新的請求發起,達到了server端的timeout,被server強行關閉。
此后再通過這個connection發起查詢的時候,就會報錯server has gone away
(大部分PHP腳本就是屬于此類)

mysql> show global variables like '%timeout';
+----------------------------+----------+
| Variable_name              | Value    |
+----------------------------+----------+
| connect_timeout            | 10       |
| 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    |
+----------------------------+----------+
10 rows in set

wait_timeout 是28800秒,即mysql鏈接在無操作28800秒后被自動關閉

原因三. mysql請求鏈接進程被主動kill

這種情況和原因二相似,只是一個是人為一個是MYSQL自己的動作

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垦利县| 阳泉市| 花莲市| 绥芬河市| 湘潭市| 徐水县| 云龙县| 西平县| 巩留县| 五河县| 白山市| 宜丰县| 永康市| 黄山市| 额敏县| 永安市| 沅江市| 巴东县| 宣化县| 秦安县| 甘泉县| 出国| 三河市| 城固县| 鹤山市| 万荣县| 井研县| 普宁市| 阳原县| 通河县| 荔浦县| 蓝田县| 苏州市| 平江县| 益阳市| 鸡西市| 甘泉县| 乌兰察布市| 邹城市| 漳州市| 石门县|