前言
据我所知,使用Mysql的人比较多,很多插件支持Mysql但不支持SQlite,这就是我更换的原因
SQLite 的优点在中小网站CMS应用场景下表现突出:
1、与MySQL相比,它更彻底的免费,并且没有任何使用上的限制
2、非常小巧,PHP5以上版本中无需任何配置即可支持SQLite
3、无需单独购买数据库服务,无服务器进程,配置成本为零
4、整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件,维护难度为零
5、读速度快,在数据量不是很大的情况下速度较快,更重要的是:省掉了一次数据库远程链接没有复杂的权限验证,打开就能操作
SQLite的缺点在中小网站 CMS 应用场景下被规避:
1、并发低 动态访问时当访问量不超过10万PV的时候,SQLite 超过 Access 的并发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题
2、在大数据量的情况下表现较差 但是中小站点一般情况下数据量不超过10万,而SQlite 在 100 万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接甚至会更快
3、写入较慢 默认配置下的 SQlite 的写入速度比MySQL慢了很多,但是 CMS 应用场景的写入操作较少。在插入新文章的时候基本感受不到慢。集中的写数据库操作只有在安装的时候会出现,不过只出现一次,可以忽略
4、为已有的表加索引较慢 但是在中小站点CMS中不会有这样的需求,可以忽略
5、无法将 MySQL 部署到与前端机不同的服务器上,但是中小站点也没有分开部署的需求
请先看完上面再决定你是否要更换
1.第一步,下载SqliteToMysql,收费软件,但是免费可以试用30天,够用了
这里是官网连接https://withdata.com/sqlitetomysql/(链接已变)
这里是官网连接:https://withdata.com/db-copier/index.html
注意:免费版只能转换100条数据,哭晕,目前还没找到可替代的解决方案
2.在你的本地mysql(建议使用Navicat——Mysql连接软件,不知道就百度)建立一个空表名为Typecho,后面要用。
3.打开SqliteToMysql软件,然后连接上你的.db文件(也就是Typecho里面的Sqlite数据文件),连接上你本地的Mysql,点ok
4.点OK之后,会弹出让你选择的界面,点Wizard下面的Import All Tables
5.勾选全部表,一路Next,完成之后关闭就行
更换Typecho数据库
修改Typecho的配置文件config.inc.php
原来SQLite数据库配置为:
$db = new Typecho_Db('Pdo_SQLite', 'lqw_');
$db->addServer(array (
'file' => 'G:/H5App/Web/blog/usr/58e7333c9a480.db',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
修改成Mysql数据库配置:
$db = new Typecho_Db('Mysql', 'lqw_');
$db->addServer(array (
'host' => 'localhost',
'user' => 'root',
'password' => 'root',
'charset' => 'utf8',
'port' => '3306',
'database' => 'typecho',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
替换完后,如果文章页面打开显示404 not found,请根据下面这篇文章的教程设置伪静态