[折腾博客]更改了数据库与网站使之支持emoji
👴的Typecho博客可以打emoji了吗?
👴事个🌶🐔嘤嘤嘤
检查发现可以使用...
起因
当初搭建博客的时候还是too young too naive. 使用的是MySQL
5.7之类#的版本,默认编码格式甚至不是utf-8
而是latin1
.在留了一个心眼改变数据库的编码格式为utf-8
之后以为就万事大吉,结果实际上还是打不出emoji
。虽然我不讲抽象话,emoji
也是偶尔用用,但是毕竟可以不用,不能没有,于是开始尝试调整数据库与网站配置使我的网站支持emoji。
调整数据库
备份数据库
mysqldump -u $user_name -p $database_name > $directory/$SQL_file
# $user_name即你数据库的用户名,确保你拥有相关权限
# $database_name即欲备份的数据库名
# $directory即备份文件存放的路径
# $SQL_file即你想要保存到的sql文件
# 例如:
# mysqldump -u db_admin -p my_typecho_blog > /home/my_typecho_blog/backup/backup_1919810.sql
更改数据库编码
登录MySQL
数据库,更改对应数据库编码。如果你忘记了你的数据库名,请使用SHOW DATABASES
。
如下是示例。
ALTER DATABASE my_typecho_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
更改数据库编码后,对数据库中的每一个表都执行:
ALTER TABLE $table_name CONVERT TO CHARATCER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
一切顺利的话可以再次存档备份。
调整Typecho相关设置
在Typecho网站的根目录下查找文件config.inc.php
,更改其中的数据库设置:
/*定义数据库参数*/
// 如下的数据只是示例
$db->addServer(array (
'host' => 'localhost',
'user' => 'my_typecho_blog',
'password' => '**************************************',
//'charset' => 'utf8',
// 注释上一行并添加下一行:
'charset' => 'utf8mb4',
'port' => '3306',
'database' => 'typecho_blogs',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
改完基本上就可以用🌶