MYSQL connector.net连接在长时间后丢失
本文关键字:长时间 connector net 连接 MYSQL | 更新日期: 2023-09-27 18:20:52
我使用connector.net 6.7.4 将mysql连接到远程服务器
像这样:
public MySqlConnection conn;
public MySqlCommand com;
public onStart()
{
conn = new MySqlConnection("Server=xx.xx.xx.xx;Port=3306;Database=kbindb;Uid=collector; Pwd=xxx;");
conn.Open();
com = new MySqlCommand("SELECT * FROM blabla;", conn);
timer.Interval=1000;
timer.Enabled=True;
}
public onTimerTick(bla bla)
{
// timer.Enabled=False;
MySqlDataReader dr = com.ExecuteReader();
while(dr.Read()){
//blabla
}
dr.Close();
//timer.Enabled=True;
}
代码正在成功运行,但在1-2小时后锁定了以下行的计时器:com.ExecuteReader();它不能用尝试接球来处理。
我能做什么?
我不会让与数据库的连接打开超过你需要的时间……当然不会持续数小时。我想你有点超时了。
尝试在tick事件中创建连接,获取数据,然后处理该连接。(以下代码中的using
语句将负责处理您的资源。)
public onStart()
{
timer.Interval = 1000;
timer.Enabled = true;
}
public onTimerTick(...)
{
timer.Enabled = false;
using (var conn = new MySqlConnection("Server=xx.xx.xx.xx;Port=3306;Database=kbindb;Uid=collector; Pwd=xxx;"))
{
conn.Open();
using (var com = new MySqlCommand("SELECT * FROM blabla;", conn))
{
var reader = com.ExecuteReader();
while (dr.Read())
{
//blabla
}
}
}
timer.Enabled = true;
}