Growing Hacker 2024-03-12 18:55 采纳率: 94.4%
浏览 172

SqlSugarCore 连接mysql 8.0.33 报错

.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

  • 写回答

3条回答 默认 最新

  • 关注

    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",其中的关键问题是连接字符串的字符集编码。

    解决该问题可以尝试以下几个步骤:

    1. 确定是否引用了适用于MySQL 8.0版本的正确版本的驱动程序包。 在项目文件中确认是否引用了Pomelo.EntityFrameworkCore.MySql的正确版本(至少需要2.0.0版本)。可以使用NuGet包管理器或手动修改项目文件来更新驱动程序包版本。
    2. 确认连接字符串中的字符集编码设置正确。 如果要支持utf8mb4字符集编码,请确保连接字符串中的charset参数设置为utf8mb4。例如:charset=utf8mb4
    3. 扩展.NET Core的字符编码支持。 默认情况下,.NET Core不支持UTF-8字符编码的字符集,需要进行一些配置来扩展支持。在项目的Startup.cs文件的ConfigureServices方法中添加以下代码:
    services.Configure<EncodingProviderSettings>(options =>
    {
        options.EncodingProviders.Add(CodePagesEncodingProvider.Instance);
    });
    

    添加后,可以尝试将连接字符串中的charset参数设置为utf8mb4,然后重新运行代码,看看是否仍然报错。

    1. 如果上述步骤仍然无法解决问题,尝试手动指定字符集编码。可以将连接字符串中的charset参数设置为其他的支持的字符集编码,例如utf8,并确保数据库和表中的字符集也设置为相同的值。

    如果以上步骤仍然无法解决问题,请提供更多的错误日志、代码、连接字符串等详细信息,以便更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月12日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗