我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SqlSugar 连接MySql 8.0.29报错

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SqlSugar 连接MySql 8.0.29报错

一、背景

从公司服务器Mysql(版本:8.0.16)导出数据库表结构和数据,再我本地电脑Mysql(版本:8.0.29) 还原,打算开启爆肝模式。结果刚启动项目就提示SqlSugar数据库连接报错。提示错误如下:

执行 Db.Ado.CheckConnection() 报错
English Message : Connection open error . The given key ‘0’ was not present in the dictionary.
Chinese Message : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,实在找不到原因请先Google错误信息:The given key ‘0’ was not present in the dictionary…


注:连接字符串:database=stocks;server=127.0.0.1;port=3306;uid=root;pwd=123;

同样的源代码,连接公司服务器Mysql运行无问题,连接本地Mysql运行就提示报错,简直神奇。经各种分析,主要问题是连接字符串中需添加字符编码。。。详见解决方案

接下来是个别表查询报错问题

个别表执行查询 this.DB.Queryable().Where(p=>true).ToList() 报错。主要是ToList()报错,经分析,主要问题是当前表字段字符集 和 排序规则不统一。报错如下:
MySql.Data.MySqlClient.MySqlException:“Fatal error encountered attempting to read the resultset.”
内部异常MySqlException: Expected end of data packet

执行MySQL批量修改数据表和数据表中所有字段的字符集,即可解决此问题。详见解决方案

二、解决方案

1.解决连接报错方式

添加 charset=utf8mb4 ,连接不再报错。注意:要utf8mb4,我在本地用utf8,仍然报错。

database=stocks;server=127.0.0.1;port=3306;uid=root;pwd=123;charset=utf8mb4;

2.修改数据库字符集不统一问题

按需执行下面Sql 脚本就行。

(1)更改某表编码(字符集)和表中所有字段的编码(字符集):

ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;·TABLE_NAME 替换成你所需表名·

(2)更改所有的表编码(字符集)和表中所有字段的编码(字符集):

SELECTCONCAT('ALTER TABLE ',TABLE_NAME,' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;')FROMinformation_schema.`TABLES`WHERETABLE_SCHEMA = 'DATABASE_NAME';·DATABASE_NAME 替换成你所需数据库名·

三、其他内容

查询某个数据库所有表名的语句:

SHOW FULL COLUMNS FROM TABLE_NAME;·TABLE_NAME 替换成你所需表名·

引用:
[1] MySQL批量修改数据表和数据表中所有字段的字符集

来源地址:https://blog.csdn.net/piao110liang/article/details/126535975

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SqlSugar 连接MySql 8.0.29报错

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SqlSugar 连接MySql 8.0.29报错

一、背景 从公司服务器Mysql(版本:8.0.16)导出数据库表结构和数据,再我本地电脑Mysql(版本:8.0.29) 还原,打算开启爆肝模式。结果刚启动项目就提示SqlSugar数据库连接报错。提示错误如下: 执行 Db.Ado.
2023-08-22

Navicat连接mysql报错问题

目录Navicat连接mysql报错解决方法总结Navicat连接mysql报错当我们用Navicat 连接数据库的时候,可能会遇到这个问题 :这个问题主要是python因为 5 和 8 的加密方式不一样,才导致报错!解决方法1、编程
Navicat连接mysql报错问题
2024-09-08

Navicat连接mysql报错2003(10060)

对于Navicat连接数据库mysql 出现报错2003(10060),如下所示报错 经过查询总结以上出现问题的主要解决方法三种: 1、MySQL的服务没有启动,这个是最常见的问题原因 WIN+R,输入services.msc打开服务管理
2023-08-19

idea连接MYSQL报错汇总

idea连接MYSQL报错汇总 【The last packet sent successfully to the server was 0 milliseconds ago.The driver has not received any
2023-08-20

使用SqlSugar连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法

在使用SqlSugar框架连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法当我们使用SqlSugar框架时,一般都会通过Visual Studio的NuGet安装SqlSugar,安装完成后只把SqlSuga
使用SqlSugar连接Oracle数据库报错需要引用Oracle.ManagedDataAccess.dll的处理方法
2016-04-28

navicat连接MySQL报错怎么解决

当Navicat连接MySQL报错时,可能有多种原因导致,下面列举一些常见的解决方法:1. 检查MySQL服务器是否已经启动。可以通过命令行或者其他方式确保MySQL服务器正常运行。2. 检查MySQL服务器的端口号是否正确。默认情况下,M
2023-08-11

mysql连接报错1045如何解决

MySQL连接报错1045通常表示用户名或密码错误,解决方法如下:检查用户名和密码是否正确:确保输入的用户名和密码是正确的,可以尝试使用MySQL的root用户登录来验证是否是用户名或密码错误导致的问题。检查主机限制:有时候MySQL数据库
mysql连接报错1045如何解决
2024-04-15

关于pycharm连接8.0.17版本mysql报错

关于pycharm连接8.0.17版本mysql报错 创建数据库可视化连接出现下方接连报错时    在url后面加上?serverTimezone=GMT即可  点击测试OK等待加载,pycharm界面右侧出现下方图所示即为连接数据库成功   关于pychar
关于pycharm连接8.0.17版本mysql报错
2018-07-24

navicat连接mysql报错10060如何解决

这篇文章主要讲解了“navicat连接mysql报错10060如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“navicat连接mysql报错10060如何解决”吧!尝试过,1:开启m
2023-07-05

编程热搜

目录