有时候,在系统出现意外情况的时候会导致 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 | .mode insert |
编辑 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
。