Typecho更换数据库将MySQL转换成SQLite详细教程

介绍

博主的Typecho一直使用的MySQL数据库,突然想起Typecho也同时支持SQLite这种单文件的数据库,反正网站访客也不多,就想着换成SQLite试试看,主要是备份也方便,不用再去单独备份一个数据库了,想了很久没动手,最近待在家左右无事,那就抱着折腾的心态动手试试吧;
注意:操作之前一定要备份!备份!备份!!!

开始

首先下载并安装需要使用到的软件MysqlToSqlite

这是一款收费软件,但有30天的试用期,正好可以使用;
安装好后打开软件,填写好信息后点击Connect如果出现绿色的connected说明连接上了MySQL数据库;
MySQL数据库的默认端口是3306如果使用了宝塔面板需要将数据库的访问权限设置为所有人并设置放行3306端口;

然后再设置转换成SQLite数据库后文件的本地保存位置,设置好后点击Connect

连上MySQL并设置好SQLite的保存位置后点击OK再选择All Table

然后选择需要转换的Typecho MySQL数据条,建议全选,免得出错;

然后一直选择Next即可,等待转换完成,出现下图就说明转换完成了;

最后在你刚才设置的保存位置里就已经生成了一个SQLite数据库文件;

设置

数据库转换完成后就开始对Typecho进行设置,让其使用SQLite数据库文件;
首先将得到的SQLite数据库文件上传到网站/usr/目录下
注意:给数据库文件设置权限644并且名称越长越复杂越好!!!
然后编辑根目录下的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);

修改完成后保存即可;
OK,MySQL转换SQLite就完成了,现在可以打开网站试试是否成功;

其它

Typecho 数据表说明

数据表名称数据表说明
post文章表
draft草稿表
page页面表
link链接表
attachment文件表
category分类表
tag标签表
link_category链接分类表
contents内容表
relationships关系表
metas项目表
comments评论表
options配置表
users用户表

Navicat Premium 管理数据库的必备软件

发表评论 取消回复

9 条评论

  1. 运维学习笔记

    SQLite数据库备份是真方便!

  2. sawadick

    不成功,浏览文章出现 Database Query Error

    1. Winyer
      @sawadick

      对,一样的

  3. 运维学习笔记

    专门来收藏一下,最近准备抽时间也换成SQLite去!OωO

  4. 明月登楼

    不知道为啥,我就感觉 Typecho天生适合使用SQLite

  5. yl

    首先将得到的SQLite数据库文件上传到网站 `/usr/` 目录下 ---- 这个目录可以设置到别的地方啊,没必要放这里

    1. sunpma
      @yl

      可以放置在其它地方,正确填写绝对路径即可

  6. bapi

    建议屏蔽下数据库的路径,试了下如果被猜到名字居然可以下载

    1. sunpma
      @bapi

      注意:给数据库文件设置权限644并且名称越长越复杂越好!!
      另外数据库路径也建议自定义