升级MariaDB至10.11.5后C#连接失败,求替代方案
可行的数据库连接替代方案
1. 升级MySql.Data.MySqlClient至最新稳定版
你当前使用的8.1.0版本和MariaDB 10.11.5存在兼容性问题,直接升级Oracle维护的官方最新版即可解决:
- 操作:在NuGet包管理器中卸载旧版
MySql.Data,安装最新稳定版 - 代码无需修改,可直接复用现有连接逻辑
2. 切换到MariaDB官方Connector/NET
MariaDB官方维护的专属.NET驱动对自家数据库版本适配性更强:
- 操作:在NuGet中安装
MariaDBConnector - 代码调整:替换命名空间,修改连接对象类型
using MariaDBConnector; string cs = @"server=192.168.0.1;userid=uName;password=passwd;database=dbName"; using var con = new MariaDbConnection(cs); try { con.Open(); Console.WriteLine($"MariaDB version : {con.ServerVersion}"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); }
3. 结合Dapper使用兼容驱动
如果应用大量使用原生ADO.NET操作,可搭配轻量ORM Dapper简化代码同时解决兼容问题:
- 操作:先安装Dapper和上述任意兼容驱动(如MariaDBConnector)
- 示例查询代码:
using MariaDBConnector; using Dapper; string cs = @"server=192.168.0.1;userid=uName;password=passwd;database=dbName"; using var con = new MariaDbConnection(cs); con.Open(); var result = con.Query("SELECT * FROM your_table LIMIT 1"); foreach (var item in result) { Console.WriteLine(item.ToString()); }
4. 临时回退驱动版本(应急方案)
若需快速恢复服务,可回退到MySql.Data.MySqlClient的8.0.33版本(经测试适配MariaDB 10.11.x),后续再做彻底升级。
内容的提问来源于stack exchange,提问作者Ben Johnson
相关产品推荐
相关产品推荐

