在 ASP.NET Core 中使用 MySql 踩坑记录
使用 Pomelo.EntityFrameworkCore.MySql 生成 MySQL 数据库
关于如何使用请查看项目文档即可
组件地址:https://github.com/PomeloFoundation/Pomelo.EntityFrameworkCore.MySql
问题描述
遇到的是在使用 CodeFirst 生成数据库的字符集编码问题
执行迁移命令:Add-Migration 版本
, Update-Database
生成数据库(若无自动创建)的字符集为 latin1 -- cp1252 West European
此字符集将会在生成查询语句包含中文的时候报如下错误
异常信息
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_bin,COERCIBLE) for operation '='MySql.Data.MySqlClient.MySqlException (0x80004005): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_bin,COERCIBLE) for operation '=' ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_bin,COERCIBLE) for operation '='
解决方案
其实组件最开始就建议了设置字符集为:utf8mb4
(MySQL5.5.3及以上),所以遇到上诉错误只需要执行修改数据库字符集命令即可
- 手动创建字符集为
utf8mb4
的数据库再执行迁移 - 命令修改字符集:
alter database 数据库名称 character set utf8mb4;
,但是注意这并不能修改已创建的表的字符集编码;故还是建议手动创建数据库。
相关命令
- 查看MySQL数据库字符集:
show variables like 'character_set_database';
- 修改MySQL数据库字符集:
alter database 数据库名称 character set utf8mb4;
在 ASP.NET Core 中使用 MySql 踩坑记录的更多相关文章
- Asp.Net Core Identity+EFCore + Mysql踩坑记录
搭建基础框架准备试试传说中的Identity,本以为很顺利,结果一路踩了N多坑 遂就把过程记录下来.方便自己以后查看,也希望能帮到遇到同样问题的朋友. 1.首先,引入Identity需要的类库,还有M ...
- CentOS7.4安装MySQL踩坑记录
CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...
- 记一次Docker中部署Asp.Net Core 3.0的踩坑过程
最近公司打算重构目前直销报单系统到微信小程序中,目前的系统只能在PC上面使用,这两年也搞过App端,但是由于人员流动和公司架构调整最后都不了了之,只留下一堆写了一半的接口.以前的接口依然是使用Asp. ...
- 在 ASP.NET Core 中使用 Serilog 进行日志记录
目录 从 NuGet 安装 Serilog 在 Main函数 中配置 Serilog 在项目中使用 Serilog 进行日志输出 从 NuGet 安装 Serilog 核心的包是 Serilog 和 ...
- 【ABP开发】:asp.net core 中使用mysql
EntityFrameworkCore项目--Nuget包管理,卸载包: Microsoft.EntityFrameworkCore.SqlServer: EntityFrameworkCore项目和 ...
- 在 ASP.NET Core 中发送邮件遇到的坑_学习笔记
功能需求 因为项目需要有个忘记密码验证邮箱再重新修改密码的功能,然后我选用了很简单的一个方案,通过验证登录用户的邮箱然后发送邮件,通过这个邮件发送的链接地址来最后实现密码修改的小功能. 项目环境及实现 ...
- Ubuntu mysql踩坑记录
安装: 1.sudo apt-get install mysql-server 2. apt-get isntall mysql-client 3. sudo apt-get install lib ...
- mysql踩坑记录之limit和sum函数混合使用问题
问题复盘本次复盘会用一个很简单的订单表作为示例. 数据准备订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID) CREATE TABLE `order` ( `i ...
- 虚拟机安装mysql踩坑记录
本章节主要讲解的是在虚拟机centOs7版本以上安装mysql5.6版本,亲测可以直接使用,有需要帮助的小伙伴可以加本人QQ2246451792@qq.com!!!! 卸载centOs7自带的mari ...
随机推荐
- Thymeleaf利用layout.html文件生成页面布局框架
1.layout.html文件 生成布局 <!DOCTYPE html> <html lang="zh-CN" xmlns:th="http://www ...
- 你不知道的JavaScript--Item20 作用域与作用域链(scope chain)
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- java之集合Collection 详解之4
package cn.itcast_04; public class Student { private String name; private int age; public Student() ...
- 三. 200多万元得到的创业教训--创业并不需要app
摘要:有个点子,研发app或网站,推广,不断改进,探索盈利模式.这个通用的移动互联网创业流程.但我认为,在某些特定的商业模式下,"研发app或网站"这步可以砍掉或推迟. 健生干货分 ...
- Ubuntu基础教程——安装谷歌Chrome浏览器
对于刚刚开始使用Ubuntu并想安装谷歌Chrome浏览器的新用户来说,本文所介绍的方法是最快捷的.在Ubuntu上安装谷歌Chrome的方法有很多.一些用户喜欢直接在 谷歌Chrome下载页面 获得 ...
- proxy.go 源码阅读
) for { select { case <-otherSide: complete <- true ...
- admin-handlers.go
package],,) ],,) ],,) ],,) ],,) ]) if err == redis.Nil { http.NotFound(w, r) } else ...
- C++中的内联函数和C中的宏定义的区别
在C++中内联函数: 内联函数即是在函数的声明和和定义前面加上“inline”关键字,内联函数和常规函数一样,都是按照值来传递参数的,如果参数为表达式,如4.5+7.5,则函数将传递表达式的值(这里为 ...
- BZOJ4944 泳池 解题报告
题目描述 有一个 \(n\) 行无穷列的海域,每个格子有 \(q\) 的概率安全, \(1-q\) 的概率不安全.从中框出一个面积最大的矩形,满足以下两个条件: (1)矩形内的格子均安全: (2)矩形 ...
- Matlab实现画柱状图坐标标签旋转
引言: 在用matlab画柱状图或者其他图的时候,你是否碰到下图这种情况: 乍一看这个柱状图画的有馍有洋的,but,仔细一看你会发现,横坐标标签如果再长一点就不好看啦,甚至会重叠,就像这样: 这样的图 ...