问题所在

Typecho 在初始化数据库的时候,选用了 utf8mb3 的编码,而在 MySQL 中,utf8mb3只支持最多 3 个字节,而 emoji 是 4 个字节,所以出现该问题。只要文章中添加了 emoji,保存文章就会显示 Database Query Error
数据库排序

解决方案

1.删除emoji表情

简单易用,立竿见影。但是治标不治本。

2.修改数据库编码

数据库操作前,备份数据。

步骤1:进入数据库管理执行命令

alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_shortlinks convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metingcache convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_links convert to character set utf8mb4 collate utf8mb4_unicode_ci;

数据库修改成功

步骤二:修改Typecho配置文件

打开Typecho配置文件config.inc.php中数据库定义参数:

'charset' => 'utf8mb4',
Last modification:May 7, 2025
如果觉得我的文章对你有用,请随意赞赏