C#中无法连接MySQL8.0数据库异常 返回
SqlSugar
沟通中
5
172
hanshanton 发布于1个月前
悬赏:0 飞吻
各位大佬好,我在C# winform中使用sqlsugar5.1.4.166连接MySQL8.0.31时出现以下错误:
Message = "中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:给定关键字不在字典中。DbType=\"MySql\";ConfigId=\"\".\r\nEnglish Message : Connection open error . 给定关键字不在字典中。DbType=\"MySql\";ConfigId=\"\" "
从错误信息中可知某个关键字不在字典中,初步怀疑是数据库连接字符串出问题了,只是我这个数据库连接字符串以前(当时MySQL版本是5.7)都是能用的,最近把代码拷到另外一台电脑升级以前的程序时,突然发现数据库连接不上了,很是奇怪。
我的数据库其中一个连接字符串如下:
<add name="db_work" connectionString="server = localhost; uid = root; pwd = xxxxx; database = db_work; SslMode=None; TrustServerCertificate=true;"/>
这两个字段“SslMode”和“TrustServerCertificate”一开始没有的,这是网友的解决方式,不过对我这边还是没作用。
我的系统信息如下:
OS:win 11 64bit
C#框架:4.6.1
MySQL:8.0.31
sqlSugar:5.1.4.166
查询出问题函数语句:
public static bool IsDatabaseExists(string databaseName) { try { //string sql = "select schema_name from information_schema.schemata where schema_name = @schema_name"; string sql = "select schema_name from information_schema.schemata where schema_name = \'" + databaseName + "\'"; if (null == masterDatabase) { lock (_obj) { if (masterDatabase == null) { masterDatabase = new SqlSugarClient(new ConnectionConfig() { ConnectionString = db_master, DbType = SqlSugar.DbType.MySql, IsAutoCloseConnection = true, }); } } } var ret = masterDatabase.SqlQueryable<object>(sql).Count(); return ret > 0 ? true : false; }catch(Exception ex) { Serilog.Log.Error("In IsDatabaseExists(string databaseName): " + ex.Message); //return false; return true; } }
小弟是SQLSugar小白,麻烦各位大佬给小弟指点迷津啊,真的不胜感激!
热忱回答(5)
-
fate sta VIP01个月前
升级mysql.data
0 回复 -
fate sta VIP01个月前
建议用.net core版本
0 回复 -
fate sta VIP01个月前
new MySqlConnection(字符串).Open() 这个能连了sqlsugar就能连了
0 回复 -
hanshanton VIP01个月前
@fate sta:是的 升级之后就好了
0 回复 -
hanshanton VIP01个月前
@fate sta:多谢大佬指点
0 回复