很早就想把博客从mysql迁移到sqlite,因为我的博客很少更新,内容也不多,另一个是备份mysql的时候,就算没更新,每次也有变动,造成备份数据一大堆,而且目前还有很多朋友放在我这边的站点,都不怎么更新,迁移后服务器的负载也会大大降低。记录下迁移的过程:
1. 备份数据库,从phpmyadmin或者mysql命令中备份sql文件,备份前可以先清除下自动草稿等,这里假设导出的数据库名为 huilang_dump.sql
-- 1. 删除所有修订版本 (Revision)
DELETE FROM wp_posts WHERE post_type = 'revision';
-- 2. 删除所有自动草稿 (Auto-draft)
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
-- 3. 深度清理:删除没有对应文章的“孤儿”元数据
-- 这一步非常重要,因为即使文章删除了,wp_postmeta 表里可能还残留着千余行数据
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT ID FROM wp_posts);
2. 安装sqlite3以及下载数据库格式转换脚本
apt install sqlite3
wget https://raw.githubusercontent.com/dumblob/mysql2sqlite/master/mysql2sqlite
chmod +x mysql2sqlite
3.转换格式
./mysql2sqlite huilang_dump.sql > huilang_wp_sqlite.sql
sqlite3 .ht.sqlite < huilang_wp_sqlite.sql
如果转换格式报错,导出sql的时候,使用 --no-tablespaces参数,再执行以上操作
mysqldump -u root -p --no-tablespaces huilang > huilang_dump.sql
4.wordpress后台安装wordperss官方SQLite Database Integration插件并启用,这里需要注意wp-content文件夹的权限
5.替换前面导出的sqlite数据库文件并修改文件权限
mv .ht.sqlite /wp-content/database/.ht.sqlite #注意改成你的数据库路径
chown -R www:www /wp-content/database/ #修改权限
后台重新进入后,右上角看到绿色的Database:sQLite文字就是成功启用了
如果服务器没有其他用到mysql的话,可以停用掉了。
禁用自动草稿可以通过以下代码实现
wp-config.php加入
# 禁用WP CRON
define('DISABLE_WP_CRON', true);
// 1. 彻底禁用修订版本 (Revisions)
define('WP_POST_REVISIONS', false);
// 2. 将自动保存间隔延长至 1 天 (86400秒),变相禁用
define('AUTOSAVE_INTERVAL', 86400);
主题function.php中加入
/**
* 彻底禁用自动保存和修订版本的深度补丁
*/
// 1. 禁用自动保存的脚本加载 (你代码中已有的部分,保留即可)
add_action('admin_init', function() {
wp_deregister_script('autosave');
});
// 2. 移除自动草稿的创建频率(针对 WP 核心心跳)
add_action('wp_print_scripts', function() {
wp_deregister_script('autosave');
}, 100);
// 3. 禁用 Heartbeat (心跳 API),它是后台自动保存的通信渠道
add_action('init', function() {
wp_deregister_script('heartbeat');
}, 1);
// 4. 彻底禁用修订版本过滤(双重保险)
add_filter('wp_revisions_to_keep', '__return_zero', 10, 2);
Sqlite和Mysql对比
| 维度 | SQLite | MySQL |
|---|---|---|
| 部署复杂度 | ⭐ 极低 | ⭐⭐⭐⭐ |
| 运维成本 | ⭐ 极低 | ⭐⭐⭐ |
| 并发能力 | ❌ 弱 | ⭐⭐⭐⭐ 强 |
| 适合流量 | 低 | 中/高 |
| 插件兼容 | 一般 | 完全 |
| 迁移 | 极简单 | 复杂 |
| 扩展性 | 差 | 强 |
| 适合架构 | 单机 / Edge | 服务器 / 集群 |
加上Memached后,并发也可以大大加强,适合写入较少的博客,纯展示内容少的企业官网等
再搭配Cloudflare全局缓存,舒服的很。
考虑一下博客要不要转换过去