WordPress网站从mysql迁移到sqlite

2026年04月24日 | 分享 | 1条评论

很早就想把博客从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全局缓存,舒服的很。

1 条评论

发布评论