SqlSugar 连接MySql 8.0.29报错

这篇具有很好参考价值的文章主要介绍了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)更改所有的表编码(字符集)和表中所有字段的编码(字符集):

SELECT
	CONCAT(
		'ALTER TABLE ',
		TABLE_NAME,
		' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'
	)
FROM
	information_schema.`TABLES`
WHERE
	TABLE_SCHEMA = 'DATABASE_NAME';
·DATABASE_NAME 替换成你所需数据库名·

三、其他内容

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

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

引用:
[1] MySQL批量修改数据表和数据表中所有字段的字符集文章来源地址https://www.toymoban.com/news/detail-595731.html

到了这里,关于SqlSugar 连接MySql 8.0.29报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Exception encountered during context initialization - cancelling refresh attempt

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 默认类路径在spring-dao.xml Error creating bean with name ‘sqlSessionFactory’ defined in class path resource [spring-dao.xml] 上下文初始化期间遇到异常 - 取消刷新尝试: Exception encountered during context initialization - cancelling refresh attempt: org.sp

    2023年04月20日
    浏览(35)
  • 初始化安装 MySQL 数据库报错:FATAL ERROR: please install the following Perl modules before executing...

    运行 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data 出现如下报错: FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db: Data::Dumper 解决: 在进行源码安装MySQL 5.6.32之前,你需要确保已安装了Perl-Data-Dumpe

    2024年02月06日
    浏览(44)
  • docker 报错“Encountered errors while bringing up the project”,实测有效

    最近在安装开源数据可视化工具 DataEase 服务时,遇到了报错,报错截图如下: 报错内容:  解决方案: 当这种报错时,dectl reload、dectl restart 都不生效,那么出现错误的原因是什么呢? 错误出现的原因是,之前启动的 docker-compose 没有关闭。 此时只需要进行 docker-compose 的关

    2024年02月14日
    浏览(62)
  • IDEA报错:[ERROR] Some problems were encountered while processing the POMs

    报错信息:在处理Pom时发生了错误 无法解析父POM:xxx:x.x.x-RELEASE:找不到com.x.x:xxx:POM:x.x.x-RELEASEhttps://repo.maven.apache.org/maven2已缓存在本地存储库中,在经过中心的更新间隔或强制更新并且“parent.relativePath”指向错误的本地POM 点击File-Setting搜索Maven,点入以下页面,查看Maven的路

    2024年02月09日
    浏览(43)
  • 警告: Exception encountered during context initialization - cancelling refresh attempt: org.springfram

    出现这个异常,大部分原因是因为jar包的版本问题导致的,如果你是参考别人的代码进行配置的jar包,导入同样的依赖版本也会出现这个问题 org.springframework.context支持。AbstractApplicationContext刷新 警告: 上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory。Un

    2024年02月16日
    浏览(36)
  • Ubuntu `apt` 报错 “Errors were encountered while processing: base-passwd“ 的解决方法

    Ubuntu apt 更新时出现报错: 由于是 postinst hook 阶段出现问题,想到需要检查这个 hook: 发现其中有 这个命令。 因此,执行 命令输出: 这就是产生错误的原因。 要知道 update-passwd 命令会执行什么操作,使用: 命令输出: 由此可见,该命令执行失败的操作是 因此,我手动使

    2024年01月23日
    浏览(52)
  • 使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)

        有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候,我们就需要把软件设计成可以连接多个数据库的模式,用什么数

    2023年04月08日
    浏览(55)
  • MySQL数据库连接失败,报错:ERROR 1040 (HY000): Too many connections

    MySQL数据库连接失败,报错:ERROR 1040 (HY000): Too many connections 连接MySQL突然出现“ERROR 1040 (HY000): Too many connections”。根据字面意思,应该是数据库的终端太多,下面修改mysql的配置文件解决。 MySQL默认连接数是151 临时配置 如果在生产环境数据库出现了最大连接数建议使用临时

    2024年02月12日
    浏览(47)
  • 解决远程连接MySQL报错:2003 - Can‘t connect to MySQL server on ‘X.X.X.X‘ (10060 “Unknown error“)问题

    问题 先看报错: 2003 - Can’t connect to MySQL server on ‘X.X.X’ (10060 “Unknown error”)。 意思是服务器远程连接出错:未知错误。 解决方案: 遇到这个问题,首先想到的是权限不够。那咱就给它赋权。 首先登录MySQL数据库:mysql -u用户名 -p密码; 然后:use mysql; 进入数据库后我们先看看

    2024年02月07日
    浏览(72)
  • navicat如何连接MySQL,报错“2003 - Can‘t connect to MySQL server on ‘localhost‘ (10061 “Unknown error“)”处理

    1.打开Navicat,点击左上角的【连接】按钮。 2. 新建连接,大家要注意了,此处新建的是连接,不是新建的数据库,我看到好多人都是把连接名当成库名写上了,这是不对的。可以建多个连接的意思是比如我们可以连接本地的mysql,也可以连接开发环境服务器的mysql,或者测试环境

    2024年02月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包