古怪的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)

 

在转换数据库之前,惊奇的发现,数据库竟然行了^^^^