成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL-CommunicationsException異常的三個(gè)典型場景及解決方法

數(shù)據(jù)庫 MySQL
客戶端發(fā)送select語句后,服務(wù)端往客戶端寫大量數(shù)據(jù),客戶端需要等待超過1分鐘才能繼續(xù)寫入,服務(wù)端就會(huì)把這種寫入時(shí)超過1分鐘(默認(rèn)值)等待的連接直接關(guān)閉。

我們?cè)谑褂肕ySQL數(shù)據(jù)庫的時(shí)候,偶爾會(huì)遇到com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,為了以后能夠更快速的定位解決該問題,下面對(duì)該異常出現(xiàn)的場景及解決方法進(jìn)行總結(jié),希望能起到拋磚引玉的作用。

場景一

場景描述

wait_timeout

根因分析

異常的原因是數(shù)據(jù)庫連接空閑時(shí)間超過了MySQL服務(wù)器配置的wait_timeout,即上圖中【2.3 數(shù)據(jù)庫操作】時(shí)候的時(shí)間 【減去】【1.5 放入連接池中】時(shí)候的時(shí)間【大于】wait_timeout。

解決辦法

方法一

mysql5以前的版本可以直接在jdbcurl的配置中附加上“autoReconnect=true”。

方法二

將mysql的全局變量wait_timeout的值修改為最大。

show global variables like "wait_timeout";

方法三【建議采納的方案】

目前項(xiàng)目采用的數(shù)據(jù)庫連接池是druid,解決該異常用到的配置項(xiàng)如下:

配置

缺省值

說明

validationQuery


用來檢測連接是否有效的sql,要求是一個(gè)查詢語句,常用select 'x'。如果validationQuery為null,testOnBorrow、testOnReturn、testWhileIdle都不會(huì)起作用。

testWhileIdle

false

建議配置為true,不影響性能,并且保證安全性。申請(qǐng)連接的時(shí)候檢測,如果空閑時(shí)間大于
timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測連接是否有效。

timeBetweenEvictionRunsMillis

1分鐘

有兩個(gè)含義:
1) Destroy線程會(huì)檢測連接的間隔時(shí)間,如果連接空閑時(shí)間大于等于
minEvictableIdleTimeMillis則關(guān)閉物理連接。
2) testWhileIdle的判斷依據(jù),詳細(xì)看testWhileIdle屬性的說明

minEvictableIdleTimeMillis


連接保持空閑而不被驅(qū)逐的最小時(shí)間

場景二

場景描述

應(yīng)用阻塞無響應(yīng)

根因分析

客戶端發(fā)送select語句后,服務(wù)端往客戶端寫大量數(shù)據(jù),客戶端需要等待超過1分鐘才能繼續(xù)寫入,服務(wù)端就會(huì)把這種寫入時(shí)超過1分鐘(默認(rèn)值)等待的連接直接關(guān)閉。

而為什么會(huì)超過1分鐘?根因是jdbc程序在接收大量數(shù)據(jù)時(shí)會(huì)耗費(fèi)大量的cpu跟內(nèi)存資源,還需要不斷做的GC,導(dǎo)致接收暫停,一旦GC時(shí)間超過net_write_timeout,mysql則會(huì)關(guān)閉連接。

根因

解決辦法

方法一

根據(jù)業(yè)務(wù)場景增大net_write_timeout

SET GLOBAL net_write_timeout =180;
SELECT @@global.net_write_timeout ;
SELECT @@session.net_read_timeout ;
show variables like '%timeout%'

方法二【建議采納的方案】

根據(jù)業(yè)務(wù)場景,優(yōu)化應(yīng)用程序。

優(yōu)化方向:

  • 優(yōu)化SQL,通過分頁的方式減少一次查詢返回的數(shù)據(jù)量
  • 優(yōu)化應(yīng)用,減少應(yīng)用停頓時(shí)間

場景三

場景描述

SSL

問題分析

MySQL server versions like 5.6.25 and earlier or 5.7.5 and earlier,客戶端連接屬性u(píng)seSSL默認(rèn)是false;MySQL server versions like 5.6.25+ or 5.7.5+,客戶端連接屬性u(píng)seSSL默認(rèn)是true。

默認(rèn)useSSL=true的MySQL server版本,客戶端連接屬性還需要配置其他額外的連接屬性,如果沒有配置會(huì)拋出CommunicationsException異常。

解決辦法

方法一

在不需要SSL連接的場景下,顯示設(shè)置useSSL=false

方法二

在需要SSL連接的場景下,客戶端和服務(wù)端都需要進(jìn)行正確的配置。

具體配置可以參考官網(wǎng)文檔:Connecting Securely Using SSL:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-using-ssl.html

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2021-09-06 08:00:00

數(shù)字化轉(zhuǎn)型IT自動(dòng)化

2011-12-02 14:00:21

JavaOOM

2009-01-18 10:15:20

SaaS服務(wù)SOA

2018-01-18 10:46:01

服務(wù)器磁盤原因

2010-07-30 12:56:53

2022-04-06 10:09:17

云服務(wù)云計(jì)算

2012-11-19 11:30:40

PowerShell常見問題解決方法

2009-06-12 16:17:48

Hibernate l

2015-09-06 10:29:20

PaaS云計(jì)算開源

2011-08-24 17:41:16

MySQL死鎖

2010-11-04 10:44:27

DB2 not fou

2018-05-29 11:44:22

數(shù)據(jù)庫MySQL死鎖

2009-08-24 10:37:11

Silverlight

2010-11-23 10:11:23

mysql建表亂碼

2011-05-19 10:08:55

2021-04-20 11:03:26

人工智能AI機(jī)器學(xué)習(xí)

2010-05-14 14:00:59

MySQL數(shù)據(jù)庫優(yōu)化

2017-06-14 22:11:57

數(shù)據(jù)庫MySQL死鎖

2024-01-07 20:05:33

2009-12-25 10:01:23

WinForm程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久久久综合色一本 | 国产精品国产精品国产专区不卡 | 成人毛片视频在线播放 | 日日干日日操 | 国产精品免费观看视频 | 日韩视频在线观看中文字幕 | 婷婷中文字幕 | 99久久免费精品国产免费高清 | 亚洲 欧美 在线 一区 | aaa级片| 操操日 | 亚洲免费成人 | 久久国产精品视频 | 欧美一级做性受免费大片免费 | 精品乱码一区二区三四区视频 | 欧美区日韩区 | 精品国产一区二区三区免费 | 二区在线观看 | 日韩欧美成人精品 | 欧美一区2区三区4区公司 | 国产午夜三级一区二区三 | 国产精品1区 | av一级毛片 | 中文字幕av网址 | 日韩在线视频观看 | 免费观看视频www | 九九视频在线观看视频6 | 福利影院在线看 | a级黄色片视频 | 91精品国产欧美一区二区 | 欧美精品一二区 | 播放一级毛片 | 操操操av| 黄网站在线观看 | 久久久久亚洲精品 | 日韩在线一区二区三区 | 18av在线播放 | 中文字幕第一页在线 | 99福利视频 | 黄色片网站在线观看 | 日本小电影网站 |