C#中无法连接MySQL8.0数据库异常 返回

SqlSugar 沟通中
5 172

各位大佬好,我在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