我已将我的Connection字符串设置为使用Character Set = utf8mb4:
"ConnectionStrings": {
"MyDatabase": "User Id=root;Host=127.0.0.1;Port=3306;Database=my_database;Character Set=utf8mb4;Password=password;"
}
我运行dotnet ef migrations add InitialCreate
来创建数据库创建的初始迁移,但是当我运行dotnet ef database update
时,数据库是用latin1
字符集创建的。
答案 0 :(得分:1)
DSN /连接字符串中指定的字符集指定了客户端字符集,在与服务器之间发送数据时将用于转换。
要更改服务器的默认字符集,您可以使用以下选项:
在创建数据库(或表)时指定字符集:
CREATE SCHEMA myschema DEFAULT CHARSET= utf8
或CREATE TABLE mytable (a varchar(100)) CHARSET=utf8
更改当前会话的服务器字符集:SET session character_set_server=utf8
通过在服务器配置文件中添加(或更改)条目character-set-server=utf8
来更改服务器配置。
SET global character_set_server=utf8
也可以使用,但是在服务器重新启动后,它将被设置为先前的(默认)值。
如果创建新表(未指定字符集),则将使用数据库/模式中的默认字符集。