mysql鏈結丟失 處理與MySql丟失的連線

2021-10-17 22:57:13 字數 1555 閱讀 1825

我想檢測到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...