使用ef core自動生成mysql表和數據編碼的問題


mysql默認的編碼是不支持中文的,需要改成utf8編碼格式。

而我使用的Pomelo.EntityFrameworkCore.MySql組件生成mysql庫和表,他是使用默認編碼的。

網上大多說修改配置文件Character Set=utf8,我這里測試無效。

所以就想到修改mysql的默認編碼。

在mysql安裝目錄下找到my.ini(我這里是這個名字,命名可以修改。只要創建服務的時候指定你自己的配置文件命名就ok)

[client]
default-character-set=utf8mb4
[mysqld]
basedir=D:\mysql-5.7.25-winx64
datadir=D:\mysql-5.7.25-winx64\data
port=3306

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
[mysql]
default-character-set=utf8mb4

修改配置文件如上。重啟mysql服務, cmd輸入

net stop mysql && net start mysql

運行程序,重新生成庫和表。

發現無效。生成的編碼格式並不是utf8

 

執行mysql查詢命令:

show variables like '%char%';  

可以發現設置是成功了的。當時就心態就崩了,

然后執行命令手動創建一個庫

create database encodtest

編碼設置是成功了的。

找了好久解決辦法。突然看到一個將mysql服務卸了重裝的辦法,死馬當活馬醫吧!

首先,停止mysql服務

net stop mysql

然后卸載

sc delete mysql

最后進入mysql安裝的bin目錄執行

mysqld install

然后啟動服務

net start mysql

重新運行程序。成功解決。

不知道為什么我的必須要重裝服務。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM