最初Typecho博客使用的是默认的MySQL数据库,后来看到支持SQLite数据库,就想着切换成SQLite,毕竟个人对性能什么的都没什么要求,主要是SQLite数据库是单文件,备份起来很方便。但是官方没有给出解决办法,于是在网上搜索一番之后,终于切换成功,流程如下:
一、MysqlToSqlite
首先安装MysqlToSqlite 这个软件,顾名思义,就是将MySQL数据库导出到SQLite数据库。
通过 MysqlToSqlite 连接到MySQL数据库,然后使用Import导出所有数据到SQLite数据库,这里假设新生成的SQLite数据库为data.db
。
二、新安装Typecho
删除或者改名博客根目录下的config.inc.php
文件,然后打开博客的链接,
此时Typecho会执行初始化安装,在安装的时候选择数据库类型为SQLite,安装完以后,系统会在usr
目录下生成系统新建的SQLite数据库,假设这个SQLite数据库为 new.db
。
三、导入导出数据
修改 config.inc.php
文件,将连接的数据库改为data.db
,然后,登录到博客系统,使用Typecho自带的导出数据工具,将博客的内容全部导出。
然后修改 config.inc.php
文件,将连接的数据库改回new.db
,登录到博客系统,使用Typecho自带的导入数据工具,将上一步生成的文件导入到博客。
经过上面几部后,博客的数据库就由MySQL切换为SQLite了
一些踩到的坑
为什么不直接使用data.db
?
直接连接到data.db
这个有数据的SQLite,博客是可以正常打开的,但是无法新增文章,新增会报错 Database Query Error
错误,具体的原因未知,据说是文章的cid无法自增。
所以只能通过初始化安装Typecho,获得系统生成的SQLite数据库文件,才能正常新增文章。
为什么不通过数据库工具将data.db
里面的数据导出到 new.db
尝试过了,失败了,可能的原因是原来MySQL里的字段属性与SQLite里有差异,还有一个原因就是原来的表里面的字段会多余系统生成的,没法成功导入。。。
通过系统的导入导出工具,只导出内容,就容易一些。
但是设置没有导过来,需要重新设置一下!!!
.htaccess永久链接设置
<IfModule mod_rewrite.c>
RewriteEngine On
# 下面是在根目录,文件夹要修改路径
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>