原先本博客使用的数据库为 MySQL,但由于没有什么人访问,且没有其它人同时参与编辑内容,所以 SQLite 就满足需求了,而且有以下两点好处:占用资源低
因为是文本文件,备份方便
以下是在 Linux 平台下对 MySQL 数据库进行转换:首先需要对MySQL 数据库中的数据进行导出:
mysqldump -u数据库用户名 -p用户密码 数据库名字 > 数据库备份名字(建议将数据库名字命令的足够复杂)
如: mysqldump -utest -p123456 typecho > typecho.sql
开始转换
./mysql2sqlite typecho.sql | sqlite3 typecho.db
转换好之后,将 typecho.db 放置在 typecho 程序中的 usr 目录中,权限修改为 0644 ,所属用户和组与其它程序文件一致,随后修改 typecho 程序根目录下的 config.inc.php 文件:
将以下代码/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
'host' => '127.0.0.1',
'user' => 'xxxxxx',
'password' => 'xxxxxx',
'charset' => 'utf8',
'port' => '3306',
'database' => 'xxxxxx',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
替换为:/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_SQLite', 'typecho_');
$db->addServer(array (
'file' => '这里填写数据库文件绝对路径,其它不用修改!例:/www/wwwroot/sunpma.com/usr/xxx.db',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
即可,如果访问首页,显示数据库错误,检查权限是否为 0644,另外 PHP 需要安装 SQLite 扩展。
那之前的 MySQL 数据库就可以停止了:systemctl stop mariadb
systemctl disable mariadb