.Net Core 2.1 使用SqlSugarCore 5.0.0.11 连接mysql 8.0.33 时报错:SqlSugar.SqlSugarException:“English Message : Connection open error . The given key '25971' was not present in the dictionary.
尝试将charset=utf8 改为charset=utf8mb4 后又提示 .net 不支持 utf8mb3
SqlSugarCore 连接mysql 8.0.33 报错
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
檀越@新空间 2024-03-12 18:55关注Growing Hacker 晚上好🌙🌙🌙
本答案参考ChatGPT-3.5根据错误提示,连接MySQL 8.0.33时报错SqlSugar.SqlSugarException: "English Message : Connection open error . The given key '25971' was not present in the dictionary. 尝试将charset=utf8改为charset=utf8mb4和又提示 .net不支持utf8mb3",其中的关键问题是连接字符串的字符集编码。
解决该问题可以尝试以下几个步骤:
- 确定是否引用了适用于MySQL 8.0版本的正确版本的驱动程序包。 在项目文件中确认是否引用了
Pomelo.EntityFrameworkCore.MySql的正确版本(至少需要2.0.0版本)。可以使用NuGet包管理器或手动修改项目文件来更新驱动程序包版本。 - 确认连接字符串中的字符集编码设置正确。 如果要支持utf8mb4字符集编码,请确保连接字符串中的
charset参数设置为utf8mb4。例如:charset=utf8mb4。 - 扩展.NET Core的字符编码支持。 默认情况下,.NET Core不支持UTF-8字符编码的字符集,需要进行一些配置来扩展支持。在项目的
Startup.cs文件的ConfigureServices方法中添加以下代码:
services.Configure<EncodingProviderSettings>(options => { options.EncodingProviders.Add(CodePagesEncodingProvider.Instance); });添加后,可以尝试将连接字符串中的
charset参数设置为utf8mb4,然后重新运行代码,看看是否仍然报错。- 如果上述步骤仍然无法解决问题,尝试手动指定字符集编码。可以将连接字符串中的
charset参数设置为其他的支持的字符集编码,例如utf8,并确保数据库和表中的字符集也设置为相同的值。
如果以上步骤仍然无法解决问题,请提供更多的错误日志、代码、连接字符串等详细信息,以便更好地帮助你解决问题。
解决 无用评论 打赏 举报- 确定是否引用了适用于MySQL 8.0版本的正确版本的驱动程序包。 在项目文件中确认是否引用了