古怪的sqlite
昨天,又无法登陆了,尝试用之前的方法来解决,却发现不奏效了,报以下错误:
Error: database is locked
从网上查找解决方法也没有任何结果, 只能自己摸索着解决. 经过不断尝试,最后用以下方法解决了:
删除数据库所在目录的 -journal 文件, lock 的问题解决了(后来证明, 其实还是有隐患的)
后台可以登陆了,但是刷新后又会到登陆页面,提示session过期. 估计还是数据库问题, 便想重新生一下数据库,又有了报错提示:
Unable to open database "mt.backup": file is encrypted or is not a database
之前, 重生语句是没有问题的,奇怪. 这个报错提示主要出现在 使用 sqlite2 打开 sqlite3文件时,难道我的数据库变成 sqlite3 了? 那就使用sqlite3重生吧
echo .dump | sqlite3 mt.backup | sqlite3 mt.db
重生完毕, 但问题依旧.
考虑升级 moveable type ,准备妥当后,进行升级,报错:
Error during upgrade: failed to execute statement CREATE TABLE mt_entry_upgrade AS SELECT * FROM mt_entry: database is locked(5) at dbdimp.c line 401 at lib/MT/Upgrade.pm line 2003.
受不了sqlite了, 但是又有了两个想法:
1. 是不是dreamhost问题;
2 . 实在不行改用mysql
思索放弃sqlite,改用mysql,从网上找了一个数据库转换程序:
mt-db-convert.cgi($Rev: 173 $): Converting your MT data between DB engines (for MT 3.2)
在转换数据库之前,惊奇的发现,数据库竟然行了^^^^