当前位置:  开发笔记 > 数据库 > 正文

有效地解锁SQLite数据库

如何解决《有效地解锁SQLite数据库》经验,为你挑选了0个好方法。

我有一个经常崩溃的程序(Zotero),它的SQLite数据库被锁定并且无法访问重启程序使用,除非我重启(我真的想避免).所以这不起作用(使用通用名称db.sqlite代替我的实际文件zotero.sqlite):

sqlite3 db.sqlite
sqlite> .backup main backup.sqlite
Error: database is locked

根据这里的答案,我试过:

echo ".dump" | sqlite3 db.sqlite | sqlite3 db.sqlite2
mv db.sqlite2 db.sqlite

db.sqlite2是0KB所以这显然不起作用.受到另一个线程的启发,我也试过了

echo '.dump' | sqlite3 db.sqlite > db.dump
cat db.dump | sqlite3 db.sqlite2
mv db.sqlite2 db.sqlite

导致db.sqlite2文件大小略小db.sqlite,而Zotero(需要数据库的文件)无法识别其内容.

所以这似乎是一种非常强力的方式,但是有效:

cp -pv db.sqlite db.sqlite2
rm -f db.sqlite
mv db.sqlite2 db.sqlite

我想知道这个解决方案是否有任何缺点,以及为什么在此之前提出其他方法.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有