MYSQL 連線超時問題

2021-04-16 18:57:07 字數 851 閱讀 1039

前不久維護了乙個**專案, 專案的後台設計是**管理者進入**後台連線,第一步就是建立資料庫,只需按照提示輸入:ip 位址(即在那個ip 位址的主機上建立資料庫)、使用者名稱、密碼、埠號(即所在ip 位址的主機上安裝的mysql 的使用者名稱、密碼和埠號)、資料庫的名字這5項內容,然後就開始自動建立資料庫,建立成功自動轉到後台管理頁面。(當然我們已經把資料庫指令碼檔案事先放置到打包檔案的乙個地方,使用者的這個操作其實就是自動匯入資料庫的功能)。

在處理這5項輸入的時候遇到了一點小問題:因為設計這些引數的輸入,如果使用者的輸入不正確,比如資料庫的使用者名稱或者密碼輸入錯誤,這個時候是要丟擲異常,從而提示使用者採取相應的操作。我在設計異常的時候發現如果使用者的:使用者名稱、密碼、埠號 輸入錯誤的話,那麼系統很快就丟擲錯誤的提示了;而ip位址輸入錯誤的話系統就好像進入了死迴圈一樣,一直在等待,沒有任何反應。看到這個問題我首先想到的是看看mysql 登入時如果ip 位址輸入錯誤會是什麼樣子。所以在登陸本機mysql 的時候我故意輸入了乙個不存在的ip ,結果是登陸mysql 的過程也是沒有任何反應,一直處於登陸狀態,10分鐘過去了也沒有任何提示出來,而不像使用者名稱或者密碼埠號輸入錯誤一樣mysql立即就給出了提示。通過這個對比我就想,mysql怎麼也沒有丟擲異常呢?人家這麼有名的軟體這個地方都沒有處理,我肯定也處理不了的。所以這個地方一直拖著沒有完工,自以為自己有很冠冕堂皇的理由。後來經理給了我提示說,那你可不可以設定個超時時間?如果連線資料庫的操作在一定時間內沒有反應的話那麼就丟擲超時異常!我恍然大悟,於是立即查詢有關連線超時時間的引數,很快便查到了waittimeout這個引數(還有乙個引數,兩者設定其中任一即可,忘記了)接著問題便解決了。

通過這個過程我發覺兩點問題:1,要善於運用不同的思維去考慮乙個問題;不要迷信權威也不要否定權威。2,要善於查詢文件。

MySQL連線超時關閉問題

其中wait timeout就是負責超時控制的變數,其時間為長度為28800s,就是8個小時,那麼就是說mysql的服務會在操作間隔8小時後斷開,需要再次重連。也有使用者在url中使用jdbc.url jdbc mysql localhost 3306 nd?autoreconnect true來使...

MySQL連線超時

1.無論是my.ini還是my.cnf,在 mysqld 下面有兩個配置項 wait timeout 28800 interactive timeout 28800 預設值都是28800秒.乙個連線,預設持續時間是wait timemout,如果連線中mysql real connect引數採用了c...

MySQL連線超時

在負載較重的mysql伺服器上,有時你偶爾會看到一些連線超時的錯誤,諸如 can t connect to mysql server on mydb 110 如果當時你有多個連線請求,你會發現其它連線卻沒問題。這類問題開始時很不顯眼,且長時間來看幾乎可以忽略不計 注 次數不 多 類似於百萬分之一的發...