.net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法

文章目录

.net framwork4.6操作MySQL报错Character set 'utf8mb3' is not supported 解决方法

详细报错内容

bash 复制代码
System.NotSupportedException
  HResult=0x80131515
  Message=Character set 'utf8mb3' is not supported by .Net Framework.
  Source=MySql.Data
  StackTrace:
   在 MySql.Data.MySqlClient.CharSetMap.GetCharacterSet(DBVersion version, String charSetName)
   在 MySql.Data.MySqlClient.MySqlField.SetFieldEncoding()
   在 MySql.Data.MySqlClient.NativeDriver.GetColumnData(MySqlField field)
   在 MySql.Data.MySqlClient.NativeDriver.GetColumnsData(MySqlField[] columns)
   在 MySql.Data.MySqlClient.Driver.GetColumns(Int32 count)
   在 MySql.Data.MySqlClient.ResultSet.LoadColumns(Int32 numCols)
   在 MySql.Data.MySqlClient.ResultSet..ctor(Driver d, Int32 statementId, Int32 numCols)
   在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force)
   在 MySql.Data.MySqlClient.MySqlDataReader.NextResult()
   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
   在 MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
   在 System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
   在 ConsoleAppSQL.Program.GetMySqlDataTable(String mySqlConn, String sql, MySqlParameter[] parms) 在 C:\Users\Administrator\source\repos\ConsoleAppSQL\ConsoleAppSQL\Program.cs 中: 第 27 行
   在 ConsoleAppSQL.Program.Main(String[] args) 在 C:\Users\Administrator\source\repos\ConsoleAppSQL\ConsoleAppSQL\Program.cs 中: 第 15 行

解决方案

修改字符集和排序为utf8mb4

修改数据

bash 复制代码
ALTER DATABASE
    myblog
    CHARACTER SET = utf8mb4
    COLLATE = utf8mb4_unicode_ci;

修改表

bash 复制代码
ALTER TABLE
    mm_t_user
    CONVERT TO CHARACTER SET utf8mb4
    COLLATE utf8mb4_unicode_ci;

修改字段

bash 复制代码
alter table mm_t_user modify content  VARCHAR(500) character set utf8mb4 COLLATE utf8mb4_unicode_ci;
相关推荐
薛定谔的算法1 小时前
phoneGPT:构建专业领域的检索增强型智能问答系统
前端·数据库·后端
Databend2 小时前
Databend 亮相 RustChinaConf 2025,分享基于 Rust 构建商业化数仓平台的探索
数据库
得物技术3 小时前
破解gh-ost变更导致MySQL表膨胀之谜|得物技术
数据库·后端·mysql
小码编匠4 小时前
WPF 中的高级交互通过右键拖动实现图像灵活缩放
后端·c#·.net
Java水解4 小时前
【MySQL】从零开始学习MySQL:基础与安装指南
后端·mysql
追逐时光者4 小时前
一个基于 .NET 开源、简易、轻量级的进销存管理系统
后端·.net
Raymond运维8 小时前
MariaDB源码编译安装(二)
运维·数据库·mariadb
沢田纲吉8 小时前
🗄️ MySQL 表操作全面指南
数据库·后端·mysql
唐青枫11 小时前
C#.NET 定时任务与队列利器:Hangfire 完整教程
c#·.net
hez201017 小时前
Runtime Async - 步入高性能异步时代
c#·.net·.net core·clr