typecho Database Query Error(转载备查,主要是记一下命令)


转载自typecho Database Query Error

刚才发布文章出现 Database Query Error,Google 了问题,原因是 Typecho 在初始化数据库的时候,选用了 UTF-8 的编码,而在 MySQL 中,UTF-8 只支持最多 3 个字节,而 emoji 是 4 个字节,所以出现该问题。如果嫌麻烦可以直接删掉 emoji 就可以成功发表了。

注意:下面是三个独立问题的解决方案记录,请不要混淆

上传附件失败

问题:上传所有附件都显示上传失败。 解决方案:将 typecho/usr/uploads/ 文件夹所有者递归修改为 www-data:www-data 语法为:chown [OPTION]... [OWNER][:[GROUP]] FILE... 命令示例:

chmod -R www-data:www-data usr/uploads

emoij(也就是标题相关的)

问题:只要文章中添加了 emoij,保存文章就会显示 Database Query Error 解决方案:

1、修改数据库 charset 为 utfmd4:

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;

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

'charset' => 'utf8mb4',

开启 Typecho 的 Debug 模式

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

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

声明:烈火灼冰|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - typecho Database Query Error(转载备查,主要是记一下命令)


离离沐雪踏轻尘