NetCore 链接MySQL 报 Character set ‘utf8mb3‘ is not supported by .Net Framework 异常解决

Posted csdn_aspnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NetCore 链接MySQL 报 Character set ‘utf8mb3‘ is not supported by .Net Framework 异常解决相关的知识,希望对你有一定的参考价值。

经过查找网上大部分资料都是修改表字符集,如下代码:

方法:

修改字符集和排序为utf8mb4

修改数据:

ALTER DATABASE
    database_name
    CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_general_ci;

修改表:

ALTER TABLE
    table_name
    CONVERT TO CHARACTER SET utf8mb4
    COLLATE utf8mb4_general_ci;

修改列:

ALTER TABLE
    table_name
    CHANGE column_name column_name
    VARCHAR(191)
    CHARACTER SET utf8mb4
    COLLATE utf8mb4_general_ci;

修改字符集后,项目运行后并进行登录操作,依然报错,最后发现服务器上版本mysql5.7,而局域网数据库服务器版本为mysql8.0.29,突然想到,是不是版本不一样引起链接不正确,然后将MySql.Data.dll版本升级到8.0.29,如下图:

将最新的 MySql.Data.dll直接复制到老项目的发布目录,替换原有的MySql.Data.dll文件,再次启动运行项目,居然成功了。

如果中途遇到The given key ‘25971‘ was not present in the dictionary错误,请参考我得另一篇文章:NetCore mysql Connection open error . The given key ‘25971‘ was not present in the dictionary_csdn_aspnet的博客-CSDN博客

mysql学习-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误

Navicat Premium 12 链接MySQL8.0.11数据库报2059错误

1,问题现象

      安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接MySQL,但是测试时出现以下报提示:             

      

2,问题原因

     mysql8.0之前的版本加密规则是mysql_native_password,mysql8.0之后,加密规则是caching_sha2_password。

      

3,解决方案

      在这里要特别说明一点,如果安装完MySQL8.0.11以后,没有设置环境变量,不能在DOS命令窗口直接使用MySQL的命令。

      3.1,电脑WIN + R打开运行窗口,键入cmd打开DOS命名窗口,键入cd C:Program FilesMySQLMySQL Server 8.0in

               

      3.2,进入安装目录的bin目录后,键入mysql -u root -p命令,按照提示输入密码,登陆MySQL库。注:root是安装MySQL时的默认用户名,如果自己修改的话,用自己新建的名字以及密码。

               

      3.3,登陆后可查询默认加密规则,键入

              use mysql;

               select user,plugin from user where user =‘root‘;

               分别执行后如下

               

      3.4,更改加密方式:ALTER USER‘root‘@‘localhost‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;

              更新用户密码:ALTER USER‘root‘@‘localhost‘ IDENTIFIED WITH mysql_native_password BY ‘password‘; 

               分别执行后如下,重新执行3.3查询结果如下,加密方式已经该改变。

               

      3.5,刷新权限:FLUSH PRIVILEGES;

               

      3.6,重新打开Navicat Premium 12,可连接成功。

               
---------------------
作者:郑先生的喵
来源:CSDN
原文:https://blog.csdn.net/pan_zzq/article/details/81078564
版权声明:本文为博主原创文章,转载请附上博文链接!






以上是关于NetCore 链接MySQL 报 Character set ‘utf8mb3‘ is not supported by .Net Framework 异常解决的主要内容,如果未能解决你的问题,请参考以下文章

java.lang.IllegalArgumentException: Invalid character found in the request target. The valid charact

mysql学习-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误

mysql数据库怎么链接报错

`navicat`外网链接`mysql`报`...error 10061`

`navicat`外网链接`mysql`报`...error 10061`

MySQL远程工具链接报错—1130