抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

有时候,在系统出现意外情况的时候会导致 SQLite 数据库损坏,从而提示 “database disk image is malformed”(数据库磁盘映像格式错误)。下面是解决办法。

安装SQLite

SQLite 数据库安装使用见:SQLite安装使用

数据库完整检查

PowerShell 命令行模式

1
sqlite3 /db/wc.db "PRAGMA integrity_check;"

会显示一系列的错误

数据库备份

PowerShell 命令行模式

1
cp /db/wc.db /db/wc.db.bak

输出 sql 文件

SQLite 模式下先进入当前数据库

1
sqlite3 /db/wc.db

再执行以下输出命令:

1
2
3
4
.mode insert
.output export_all.sql
.dump
.exit

编辑 SQL 文件

进入 PowerShell 命令行模式

1
Get-Content export_all.sql | Select-String -NotMatch TRANSACTION | Select-String -NotMatch ROLLBACK | Select-String -NotMatch COMMIT | Set-Content -Encoding utf8 export_all_notran.sql

删除出错的数据库

PowerShell 命令行模式下

1
rm /db/wc.db

数据写入到新数据库

1
sqlite3 /db/wc.db ".read export_all_notran.sql"

查看新数据库文件是否写入

查看文件长度是否大于 0

1
ls /db/wc.db

使用

如果操作成功的话就可以使用新的数据库文件: /db/wc.db

评论