日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

客户端连接mysql 自动断开_MySql连接空闲8小时自动断开的原因及连接池配置方法...

發(fā)布時間:2025/3/12 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 客户端连接mysql 自动断开_MySql连接空闲8小时自动断开的原因及连接池配置方法... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

非交互式超時時間,如 JDBC 程序

show global variables like 'wait_timeout';

交互式超時時間,如數(shù)據(jù)庫工具

show global variables like 'interactive_timeout';

MySQL服務器默認的“wait_timeout”是28800秒即8小時,意味著如果一個連接的空閑時間超過8個小時,MySQL將自動斷開該連接。

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

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

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

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

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--- 服務器端緩存連接;

Threads_connected ---當前打開的連接數(shù)

Threads_created ---創(chuàng)建的線程數(shù)

Threads_running---正在運行的線程

tips:

a、配置最小連接數(shù)5,最大連接數(shù)10,則會提前創(chuàng)建5個連接,當不夠時會再次創(chuàng)建,但不超過10個。每個連接請求如果未使用則會自動回收銷毀,但會保持最小5個連接數(shù)不會銷毀。

b、數(shù)據(jù)庫連接池和線程池一樣,使用鏈表形式存儲(前面是少使用的,后面是最近剛被使用的)。

--獲取連接:每次獲取鏈表的頭結(jié)點,并且刪除該頭結(jié)點的引用關系

--釋放連接:將該連接放入鏈表的后面

//連接數(shù)配置為2的響應結(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)用:基于請求與響應;

異步調(diào)用:服務器端單獨開啟一個線程處理比較耗時間代碼;

優(yōu)點:防止客戶端阻塞;

缺點:

1.客戶端不能夠及時獲取到響應結(jié)果

2.開啟單獨一個線程異步處理 有可能會非常消耗cpu資源

連接方式【MySQL JDBC長連接】

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

優(yōu)點:避免重復創(chuàng)建tcp三次握手和四次揮手(socket)

缺點: 有可能浪費我們服務器端資源;空閑超時時間

應用場景:頻繁發(fā)送請求提高效率

短連接:每次發(fā)送請求完成之后,都會把連接關閉;

優(yōu)點:避免浪費我們服務器的資源;

缺點: 每次建立連接的時候需要經(jīng)歷tcp三次握手,如果在頻繁發(fā)送請求的情況下效率有可能會降低;

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

單工: 數(shù)據(jù)單向發(fā)送

半雙工: 數(shù)據(jù)雙向傳輸,但不能同時傳輸 (mysql 采用半雙工模式)

全雙工:數(shù)據(jù)雙向傳輸,可以同時傳輸

設定所接受的包的大小:

show variables like '%max_allowed_packet%';

根據(jù)情形不同,其缺省值可能是1M或者4M。

最大值是1G(1073741824),如果設置超過1G,查看最終生效結(jié)果也只有1G。

通訊協(xié)議

Unix非網(wǎng)絡協(xié)議、TCP/IP套接字

Unix非網(wǎng)絡協(xié)議:在linux 操作系統(tǒng)中客戶端和服務器端都在同一臺電腦上,客戶端訪問mysql使用Unix 協(xié)議非網(wǎng)絡協(xié)議。

TCP/IP套接字:客戶端與服務器不在同一臺電腦上 采用網(wǎng)絡方式實現(xiàn)通訊

命名管道和內(nèi)存共享

在window系統(tǒng)中客戶端和Mysql服務器在同一臺電腦上,可以使用命名管道和共享內(nèi)存的方式,

命名管道開啟:–shared-memory=on/off;

共享內(nèi)存開啟:–enable-named-pipe=on/off;

總結(jié)

以上是生活随笔為你收集整理的客户端连接mysql 自动断开_MySql连接空闲8小时自动断开的原因及连接池配置方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。