MySQL报错总结

1,报错:System.NotSupportedException: Character set 'utf8mb3' is not supported by .Net Framework.

【尝试1】从官网下载MySql.Data.dll(8.0.24),结论:还是一样的报错

下载地址:https://dev.mysql.com/downloads/

 

 

 

 下载解压后

 

 重新引用这个8.0.24的DLL还是报错

【尝试2】从NuGet上下载MySql.Data.dll(8.0.31),问题解决

 2,类型'System.Int32的'的对象不能转换为类型'System.UInt32

C#中的属性:public uint CycleNo { get; set; } 

MySql中的字段:`CycleNo` int unsigned NULL,

【unit】<-->【 int unsigned】

3,C#连接报错:Retrieval of the RSA public key is not enabled for insecure connections

【尝试1】打开MySql workbrench,连接上数据库后,再打开C#程序连接就不报错啦。关闭MySql workbrench客户端后也不报错了

【尝试2】用字符串A,连上不报错。然后再切换到A,也不报错。这很奇怪,不知道为啥?

连接字符串A

"Database=db_VAS; Data Source=localhost;User Id=root;Password=123456;pooling = false; CharSet = utf8 ;port =3306;SSL Mode=None"

连接字符串B(加了allowPublicKeyRetrieval=true)

"Database=db_VAS; Data Source=localhost;User Id=root;Password=123456;pooling = false; CharSet = utf8 ;port =3306;SSL Mode=None;allowPublicKeyRetrieval=true"

百度笔记:

如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;但是需要注意的是 AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启。

所以可以用mysql_native_password,不要用sha256_password方式,就不会有问题了。

在链接的后面添加参数allowPublicKeyRetrieval=true即可。

3,初始化SqlSugarClient报错:给定关键字不在字典中。DbType="MySql";ConfigId=""

            ConnectionConfig connectionConfig = new ConnectionConfig()
            {
                //注意要填写需要创建的数据库名称
                //ConnectionString = "Data Source=KDE49AE3P78OP7D;Initial Catalog=HolyBoltSystemDB_New;User ID=sa;Password=123",//sqlserver
                ConnectionString = "Database = HolyBoltSystemDB; Data Source = localhost; User Id = root;Password=123456;pooling = false; CharSet = utf8 ;port =3306;SSL Mode=None;allowPublicKeyRetrieval=true",//mysql
                IsAutoCloseConnection = true,
                DbType = DbType.MySql
            };

            //SqlSugarClient:链接数据库的对象
            using (SqlSugarClient db = new SqlSugarClient(connectionConfig))//这里报错“...给定关键字不在字典中。DbType="MySql";ConfigId=""...”
            {
                //如果不存在则创建数据,存在则不会重复创建
                {
                    db.DbMaintenance.CreateDatabase();//注意:Oracle和个别国产的不支持该方法
                }

                //根据实体类创建表
                {
                    db.CodeFirst.InitTables(typeof(TighteningResult));
                }

                //设置默认的字符串长度
                {
                    db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(TighteningResult));
                }

                //创建多个表
                {
                    db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(TighteningResult),typeof(SysAdmin),typeof(SysAdmin1));
                }

                //批量创建表,根据dll里面所有的实体类创建
                //动态设置表名
                {
                    db.CodeFirst.As<SysAdmin>("SysAdmin1").InitTables<SysAdmin>();
                    db.CodeFirst.As<SysAdmin>("SysAdmin2").InitTables<SysAdmin>();
                    db.CodeFirst.As<SysAdmin>("SysAdmin3").InitTables<SysAdmin>();
                    db.CodeFirst.As<SysAdmin>("SysAdmin4").InitTables<SysAdmin>();
                    db.CodeFirst.As<SysAdmin>("SysAdmin5").InitTables<SysAdmin>();
                }

            }

  

最终解决:版本匹配问题,换成MySql.Data.dll-8.0.31.0 和SqlSugar-8.0.31.0,问题解决

 

 4,MySQL服务正在启动或停止中

管理员运行cmd

tasklist|findstr "mysql"

taskkill /f /t /im mysqld.exe

就正常可以启动了

Microsoft Windows [版本 10.0.22621.1555]
(c) Microsoft Corporation。保留所有权利。

C:\Windows\System32>tasklist|findstr "mysql"
mysqld.exe                   16524 Services                   0      8,296 K
mysqld.exe                   13148 Services                   0     45,540 K

C:\Windows\System32>taskkill /f /t /im mysqld.exe
成功: 已终止 PID 20208 (属于 PID 13148 子进程)的进程。
成功: 已终止 PID 13148 (属于 PID 16524 子进程)的进程。
成功: 已终止 PID 16524 (属于 PID 1288 子进程)的进程。

C:\Windows\System32>tasklist|findstr "mysql"
mysqld.exe                   21268 Services                   0     36,432 K
mysqld.exe                   11324 Services                   0    388,604 K

C:\Windows\System32>

  

 

5,中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Got timeout reading communication packetsDbType="MySql";ConfigId="".
English Message : Connection open error . Got timeout reading communication packetsDbType="MySql";ConfigId=""

6,AtlasPfTightening-ReadInitialStartTighteningIDFromConfig-Error:Fatal error encountered during command execution.

7,AtlasPfTightening-ReadInitialStartTighteningIDFromConfig-Error:中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Unable to connect to any of the specified MySQL hosts.DbType="MySql";ConfigId="".
English Message : Connection open error . Unable to connect to any of the specified MySQL hosts.DbType="MySql";ConfigId=""

 

posted @ 2022-11-10 15:55  包子789654  阅读(1102)  评论(0编辑  收藏  举报