我想檢測到mysql資料庫的連線狀態。我的資料庫部署在與我的應用程式不同的伺服器上,並且很有可能通過網路失去與它的連線。所以我必須考慮這種情況。
這是我到目前為止所嘗試的(乙個簡化的測試示例):
static string connectionstring = "***";
public static mysqlconnection connection;
static system.timers.timer _timer;
static void _timer_elapsed(object sender, elapsedeventargs e)
tryif (connection.state != system.data.connectionstate.open)
connection.open();
// call method to invoke mysqlcommand.executenonquery
mysqlcommand.executenonquery();
catch (mysqlexception ex)
console.writeline("sql exception: " + ex);
// handle all type of database exceptions
switch(ex.number)
catch (exception ex)
console.writeline("other exception: " + ex);
static void main(string args)
connection = new mysqlconnection(connectionstring);
_timer = new system.timers.timer(3000);
_timer.elapsed += new elapsedeventhandler(_timer_elapsed);
_timer.enabled = true;
console.readkey();
}如果與mysql的連線丟失,我得到乙個一般的異常:
ioexception : unable to write data to the transport connection: an
established connection was aborted by the software in your host
machine.
我曾期待mysqlexception被解雇,但事實並非如此。
此外,如果與mysql的連線恢復,我仍然會得到ioexception而不是執行查詢。看起來像mysqlconnection物件沒有被更新,它不關心新的連線狀態。
處理連線丟失異常的最佳方法是什麼?
連線恢復後,如何重新整理mysqlconnection?
注意:我無法為每個新查詢例項化乙個新的mysqlconnection物件,因為我試圖更改的程式有乙個mysqlconnection型別的singleton,它只初始化一次。我知道這是乙個糟糕的設計,但我現在不想改變這種設計。我只想捕獲連線丟失的異常,並嘗試重新整理mysqlconnection以繼續正常工作。
mysql資料庫之python鏈結mysql
使用之前請在命令列pip install pymysql import pymysql 1.建立鏈結 conn pymysql.connect host 127.0.0.1 ip位址 port 3306,埠號 database database name 資料庫名稱 user mysql usern...
cookie丟失問題調查與處理
最近做乙個專案,發現總是丟失cookie導致業務無法走下去,各種搜尋,有人說要設定path和domain,我設定了一下,好像有點用了。但是我在接下另外乙個專案中發現,這招並不好使,於是又一番調查與研究問題終於解決了。現在整理如下 可能出現cookie丟失原因 1 重定向太多有可能導致丟失 2 set...
mysql資料庫密碼丟失處理方案
update mysql.user set authentication string password 新密碼 where user python 重啟資料庫 對賬戶上鎖 alter user python account lock 解鎖 alter user python account unl...