文章内容

2019/9/4 9:27:01,作 者: 黄兵

IdenttityServer 4 MySQL数据表存在的一些问题

最近在使用IdentityServer4 数据库使用的是MySQL,在测试的过程中,中间存在很多坑,记录一下,以方便以后排错。

fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (1ms) [Parameters=[@p0='?' (Size = 4000), @p1='?' (Size = 4000), @p2='?' (Size = 255)], CommandType='Text', CommandTimeout='30']
INSERT INTO `AspNetUserClaims` (`ClaimType`, `ClaimValue`, `UserId`)
VALUES (@p0, @p1, @p2);
SELECT `Id`
FROM `AspNetUserClaims`
WHERE ROW_COUNT() = 1 AND `Id` = LAST_INSERT_ID();

这里报错,主要是插入的是中文,没有这个相关的字符集,最主要的特征如下:

Incorrect string value: '\xE5\x85\xB5' for column 'ClaimValue' at row 1

可以参考这篇文章修改相应的字段:(1366, "Incorrect string value: '\\xE5\\xBB\\xBA\\xE7\\xAD\\x91...' for column 'classification_name' at row 1")

修改字段字符集,执行如下SQL:

ALTER TABLE AspNetUserClaims CHANGE ClaimValue ClaimValue longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE AspNetUserClaims CHANGE GivenName GivenName longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

同时这张表也需要修改(FamilyName和GivenName字段):



黄兵个人博客原创。
分享到:

发表评论

评论列表