Mysql越用越难受啊,我用个数据库还要打各种指令,哪有时间学那么多东西,想了想迁移到Sqlite算了,备份方便不少。
记录下迁移过程中的坑。

(1) 下载MysqlToSqlite

Sqlite是以文件形式存数据库的,备份就只用把这个.db文件copy走就行了,方便的不行。这个MysqlToSqlite软件可以把Mysql的数据库转换成Sqlite。直接百度搜索下载即可,免费版可以用30天,用了卸载就行。

(2) 使用MysqlToSqlite

主要一点,就是连不上数据库,10061,远程服务器积极拒绝...
到mysql里设置一下就能连上了

mysql -u root -p

输入密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

把上面你的密码改一下,这样子所有的主机都可以使用ip和root账号进行连接了

连上数据库之后把typecho表导出即可

(3) 修改typecho配置文件

把导出的数据库文件复制到服务器上,建议复制到非网站目录,或者把文件名改的非常复杂,因为如果别人在地址栏输入对了数据库名的话,是可以直接下载数据库的,非常不安全。Sqlite就是这点不好了

重要!重要!重要!

一定要修改权限,懒就直接777,放数据库的目录也要777。不然会出现500 Database Query Error错误,数据库只能读不能写。

网站根目录下,config.inc.php修改,最下面,屏蔽之前的Mysql,加上Sqlite

$db = new Typecho_Db('Pdo_SQLite', 'typecho_');
$db->addServer(array (
  'file' => '你的Sqlite数据库绝对路径,一定要改权限!',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
define('__TYPECHO_DEBUG__', true);

(4) 安装Sqlite

两行代码输入即可,不安装数据库会报一个错,忘记是什么了,好像是数据库连接失败?

apt install sqlite
apt install php7.0-sqlite

(5) 完成

坑就碰到了上面几个,然后就迁移完成了

(6) 之后

就在发这篇文章的时候,typecho报错了
SQLSTATE[23000]: Integrity constraint violation: 19 NOT NULL constraint fail...
我仔细看了看报错内容,里面写 NOT NULL,还有slug字段,我就打开数据库文件看了看,typecho_contents表里,slug字段是不能为空,我就把不能为空去掉,就可以了

标签: typecho, mysql, sqlite

添加新评论