问题所在
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',