Admin

Typecho发布文章出现Database Query Error
刚才发布文章出现Database Query Error根据Google找到的问题答案是文章中添加有 emoji ...
扫描右侧二维码阅读全文
07
2019/03

Typecho发布文章出现Database Query Error

刚才发布文章出现

Database Query Error

根据Google找到的问题答案是文章中添加有 emoji 表情,Typecho在初始化数据库的时候,选用了UTF-8的编码,而在MySQL中,UTF-8只支持最多3个字节,而emoji是4个字节,所以出现该问题。

解决方案:

1.修改数据库charset为utf8mb4:

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;

​ 注意:如果装有其他插件,在数据库中也有表的话,建议也修改,比如我装了 links 插件,就多了一个表 typecho_links

alter table typecho_links convert to character set utf8mb4 collate utf8mb4_unicode_ci;

​ 建议把Typecho数据库中的表都列出来看看,都改了。

USE typecho;
SHOW tables;

2.修改Typecho配置文件config.inc.php中数据库定义参数中的charset为utf8mb4:

$db->addServer(array (
  'host' => '',
  'user' => '',
  'password' => '',
  'charset' => 'utf8mb4',  # 修改这里
  'port' => '3306',
  'database' => 'typecho',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

开启Typecho的Debug模式

​ 在Typecho配置文件config.inc.php中添加下面的代码:

/** 开启Debug模式 */
define("__TYPECHO_DEBUG__",true);

本文参考自:《typecho常见配置和错误信息

Last modification:April 26th, 2019 at 12:25 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment