Ghost博客使用MYSQL导出导入乱码玄学

Ghost博客使用MYSQL导出导入乱码玄学

Ghost版本是 0.7, 环境是 CentOS7 node 0.12, config.js 里编码是utf8

这是一个很玄学的的问题, 搞了一晚上导出导入了N次

后来让我找到是 MySQL 的锅,按照以下步骤操作既能修正这些问题(在数据库中已经乱码的无解)

  1. 修改 my.ini (MariaDB在/etc/my.cnf.d/server.cnf
[mysqld]
collation-server = utf8_unicode_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

#备注 utf8_unicode_ci 或者 utf8_general_ci 都可以
  1. 进数据库命令模式
mysql -uroot -p
# 输入数据库密码

进入命令模式后,输入 show variables like 'char%' 查看编码,将不是utf8的编码都修改为utf8

使用命令:SET character_set_client='utf8' 设置为如下图

命令执行结果图

接着用 show variables like 'collation%'查看设置后的结果是否正确

没错!就是这样。愉快的搞定了。

后记

在后台导入 json 备份的时候出现这个错误的解决

Attempting to import data linked to unknown user id 4

一般是 文章找不到对应的用户。。打开json备份文件,搜索 users 一般在文件最末尾
uid 改成 1 或者临时创建的uid,或者你看下备份导出的那些文章uid是啥改成啥 一般能解决(记得备份)