MySql.Data 类库

场景:一台服务器 需要连接远方的mysql数据库。

          使用的是 mysql.data.dll 版本为 6.9.9。

          奇怪的是 在服务器中安装 Navicat for MySQL 是可以连接数据库的。

导致:经常性无法连接mysql库。

          1.远程主机强迫关闭了一个现在的连接。

          2.无法从传输连接中读取数据。

          3.由于远程方已关闭传输流,身份验证失败。

解决: 换成 MySql.Data.dll 为 6.6.5



查资料:

1.保证网络正常(跨机房专线稳定性不可控,有人摇晃光纤玩 o(∩_∩)o 或者其他原因导致流量堵塞)

2.容易卡的数据库连接分离出去到单独的进程。这样由于不共享锁,所以不会卡住其他线程池的使用和创建。

3.需要跨机房的业务,在数据所在机房单独提供api,内网失效时可以走外网。

4.容易卡住的线程池连接字符串中设置minPoolSize=0。这样创建连接池时,不预创建连接而影响其他连接池。但是,对于突发流量增长的情况,响应可能不够及时。

5.设置一个合理的ConnectionTimeout。可以有效避免连接创建时卡住,导致api无响应和其他副作用。

你可能感兴趣的:(MySql.Data 类库)