MySql連接空閑8小時自動斷開的原因及連接池配置方法

上一篇 <<<MySQL發(fā)展歷程與整體架構(gòu)
下一篇 >>>查詢和更新sql語句執(zhí)行原理


數(shù)據(jù)庫連接超時時間查詢

非交互式超時時間,如 JDBC 程序
show global variables like 'wait_timeout';
交互式超時時間扁凛,如數(shù)據(jù)庫工具
show global variables like 'interactive_timeout';
MySQL服務(wù)器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閑時間超過8個小時沸毁,MySQL將自動斷開該連接。

8小時自動斷開引起的問題解決辦法

a.定時發(fā)送JDBC語句(不推薦)

b.增加 MySQL 的 wait_timeout 屬性的值 (不推薦)

修改mysql安裝目錄下的配置文件 my.ini文件(如果沒有此文件傻寂,復(fù)制“my-default.ini”文件息尺,生成“復(fù)件 my-default.ini”文件。將“復(fù)件 my-default.ini”文件重命名成“my.ini” )疾掰,在文件中設(shè)置:

wait_timeout=31536000  
interactive_timeout=31536000 

這兩個參數(shù)的默認值是8小時(60608=28800)搂誉。 注意: 1.wait_timeout的最大值只允許2147483 (24天左右),也可以使用mysql命令對這兩個屬性進行修改。

c.配置連接池(推薦)

使用數(shù)據(jù)庫連接池 自帶功能 定時清理空閑超時的jdbc連接静檬。
show global status like 'Thread%';
Threads_cached--- 服務(wù)器端緩存連接炭懊;
Threads_connected ---當(dāng)前打開的連接數(shù)
Threads_created ---創(chuàng)建的線程數(shù)
Threads_running---正在運行的線程
tips:
a、配置最小連接數(shù)5拂檩,最大連接數(shù)10侮腹,則會提前創(chuàng)建5個連接,當(dāng)不夠時會再次創(chuàng)建稻励,但不超過10個父阻。每個連接請求如果未使用則會自動回收銷毀,但會保持最小5個連接數(shù)不會銷毀。
b加矛、數(shù)據(jù)庫連接池和線程池一樣履婉,使用鏈表形式存儲(前面是少使用的,后面是最近剛被使用的)斟览。
--獲取連接:每次獲取鏈表的頭結(jié)點毁腿,并且刪除該頭結(jié)點的引用關(guān)系
--釋放連接:將該連接放入鏈表的后面

//連接數(shù)配置為2的響應(yīng)結(jié)果:
第1次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第1次查詢結(jié)果:id:5,orderName100
第2次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第2次查詢結(jié)果:id:5,orderName100
第3次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第3次查詢結(jié)果:id:5,orderName100
第4次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第4次查詢結(jié)果:id:5,orderName100
第5次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第5次查詢結(jié)果:id:5,orderName100
第6次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第6次查詢結(jié)果:id:5,orderName100
第7次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第7次查詢結(jié)果:id:5,orderName100
第8次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第8次查詢結(jié)果:id:5,orderName100
第9次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第9次查詢結(jié)果:id:5,orderName100
第10次發(fā)送連接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第10次查詢結(jié)果:id:5,orderName100

通訊類型

同步調(diào)用:基于請求與響應(yīng);
異步調(diào)用:服務(wù)器端單獨開啟一個線程處理比較耗時間代碼趣惠;
優(yōu)點:防止客戶端阻塞狸棍;
缺點:
1.客戶端不能夠及時獲取到響應(yīng)結(jié)果
2.開啟單獨一個線程異步處理 有可能會非常消耗cpu資源

連接方式【MySQL JDBC長連接】

長連接:每次建立連接完成之后身害,會將該連接保存起來實現(xiàn)復(fù)用味悄,不會頻繁創(chuàng)建連接,避免tcp三次握手和四次揮手塌鸯。

優(yōu)點:避免重復(fù)創(chuàng)建tcp三次握手和四次揮手(socket)
缺點: 有可能浪費我們服務(wù)器端資源侍瑟;空閑超時時間
應(yīng)用場景:頻繁發(fā)送請求提高效率

短連接:每次發(fā)送請求完成之后,都會把連接關(guān)閉丙猬;
優(yōu)點:避免浪費我們服務(wù)器的資源涨颜;
缺點: 每次建立連接的時候需要經(jīng)歷tcp三次握手,如果在頻繁發(fā)送請求的情況下效率有可能會降低茧球;

數(shù)據(jù)傳輸模式

單工: 數(shù)據(jù)單向發(fā)送
半雙工: 數(shù)據(jù)雙向傳輸庭瑰,但不能同時傳輸 (mysql 采用半雙工模式)
全雙工:數(shù)據(jù)雙向傳輸,可以同時傳輸

設(shè)定所接受的包的大星缆瘛:
show variables like '%max_allowed_packet%';
根據(jù)情形不同弹灭,其缺省值可能是1M或者4M。
最大值是1G(1073741824)揪垄,如果設(shè)置超過1G穷吮,查看最終生效結(jié)果也只有1G。

通訊協(xié)議

Unix非網(wǎng)絡(luò)協(xié)議饥努、TCP/IP套接字
Unix非網(wǎng)絡(luò)協(xié)議:在linux 操作系統(tǒng)中客戶端和服務(wù)器端都在同一臺電腦上,客戶端訪問mysql使用Unix 協(xié)議非網(wǎng)絡(luò)協(xié)議捡鱼。
TCP/IP套接字:客戶端與服務(wù)器不在同一臺電腦上 采用網(wǎng)絡(luò)方式實現(xiàn)通訊
命名管道和內(nèi)存共享
在window系統(tǒng)中客戶端和Mysql服務(wù)器在同一臺電腦上,可以使用命名管道和共享內(nèi)存的方式酷愧,
命名管道開啟:–shared-memory=on/off驾诈;
共享內(nèi)存開啟:–enable-named-pipe=on/off;


推薦閱讀:
<<<MySQL發(fā)展歷程與整體架構(gòu)
<<<查詢和更新sql語句執(zhí)行原理
<<<MySQL存儲引擎匯總
<<<InnoDB存儲引擎的Buffer Pool 緩沖池底層結(jié)構(gòu)
<<<Too many connections分析與processlist解讀
<<<MySQL索引底層結(jié)構(gòu)與實現(xiàn)原理
<<<MySql的表鎖行鎖及間隙鎖
<<<MySQL的并發(fā)文件及事務(wù)隔離級別
<<<MySQL的MVCC多版本控制原理
<<<MySQL常用命令匯總

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市溶浴,隨后出現(xiàn)的幾起案子乍迄,更是在濱河造成了極大的恐慌,老刑警劉巖戳葵,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件就乓,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機生蚁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門噩翠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人邦投,你說我怎么就攤上這事伤锚。” “怎么了志衣?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵屯援,是天一觀的道長。 經(jīng)常有香客問我念脯,道長狞洋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任绿店,我火速辦了婚禮吉懊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘假勿。我一直安慰自己借嗽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布转培。 她就那樣靜靜地躺著恶导,像睡著了一般。 火紅的嫁衣襯著肌膚如雪浸须。 梳的紋絲不亂的頭發(fā)上惨寿,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音羽戒,去河邊找鬼缤沦。 笑死,一個胖子當(dāng)著我的面吹牛易稠,可吹牛的內(nèi)容都是我干的缸废。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼驶社,長吁一口氣:“原來是場噩夢啊……” “哼企量!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亡电,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤嫂用,失蹤者是張志新(化名)和其女友劉穎子眶,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匈织,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡槐脏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡枣接,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缺谴,到底是詐尸還是另有隱情但惶,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布湿蛔,位于F島的核電站膀曾,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏阳啥。R本人自食惡果不足惜添谊,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苫纤。 院中可真熱鬧碉钠,春花似錦纲缓、人聲如沸卷拘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栗弟。三九已至,卻和暖如春工闺,著一層夾襖步出監(jiān)牢的瞬間乍赫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工陆蟆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留雷厂,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓叠殷,卻偏偏與公主長得像改鲫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子林束,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

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