使用MySql.Data连接MySQL实例时报Version string not in acceptable format错误
错误原因
你遇到的报错是由于使用的 MySql.Data NuGet包版本过低 导致的:老版本的MySql.Data对MySQL版本号的解析逻辑非常严格,遇到版本号带-log这类自定义后缀(你的实例版本是5.7.33-log)时,无法正确提取有效版本字段,就会抛出Version string not in acceptable format异常。MySQL Workbench可以正常连接是因为它的版本解析逻辑更宽松,兼容带后缀的版本标识。
解决方案
按优先级从高到低推荐以下几种方案:
- 方案1:替换为MySqlConnector包(最推荐)
MySqlConnector是目前维护更活跃、兼容性更好的MySQL .NET驱动,原生支持带后缀的版本号解析,替换成本极低:- 卸载项目中已安装的
MySql.DataNuGet包 - 搜索安装
MySqlConnectorNuGet包 - 将代码中命名空间引用
using MySql.Data.MySqlClient;修改为using MySqlConnector;即可,原有连接字符串不需要调整。
- 卸载项目中已安装的
- 方案2:升级MySql.Data到最新稳定版
高版本的MySql.Data已经修复了版本号解析的bug,直接在NuGet包管理器中将MySql.Data升级到最新正式版即可解决问题。 - 方案3:连接字符串手动指定版本号(临时快速修复)
如果暂时无法调整依赖包,可以直接在连接字符串中手动指定ServerVersion参数,跳过自动解析逻辑:var mscon = new MySqlConnection("server=myserverip;uid=myusername;pwd=mypassword;database=mydatabase;charset=utf8;ServerVersion=5.7.33;");
内容的提问来源于stack exchange,提问作者Sudheesh PM
相关产品推荐
相关产品推荐

