the database disk image is malformed
進入到sqlite3操作指定的資料庫
或者直接
sqlite3 e:\item.db
操作此資料庫
sqlite> .databases
main: e:\item.db
sqlite> .tables 顯示列表
檢查資料庫是否損壞
sqlite> pragma integrity_check;
下面開始修復損壞的資料庫
linux下:
$ sqlite3 mydata.db ".dump" | sqlite3 new.db
windows下:
第一步匯出sql語句
sqlite3 e:\item.db
sqlite>.output my.sql
sqlite>.dump
sqlite> .quit
第二步執行sql語句
sqlite3 new.db
sqlite> .read my.sql
sqlite> .quit
my.sql檔案使用notpad++開啟之後,拉到最後檢視是否是commit;如果是rollback;就修改為commit;
unzipsqlite-tools-linux-x86-3240000.zip
解壓之後有sqldiff、sqlite3、sqlite3_analyzer
cd sqlite-tools-linux-x86-3240000
進入到解壓的目錄
sudo apt install sqlite3
安裝進入到需要檢視的資料庫目錄,如item.db
sqlite3item.db
進入item資料庫
.tables
檢視裡面的表
.mode column
檢視表中的資料,預設顯示方式以豎線分隔"|"
.header on
頭部顯示列名
select * from t_bd_item_info limit 2;
SQLite資料庫損壞與修復
導致sqlite資料庫損壞的情況大致可歸結為4類 檔案覆蓋問題 檔案鎖問題 資料同步問題 記憶體問題 sqlite資料庫檔案被覆蓋是可能的,畢竟是乙個普通的磁碟檔案,意味著所有的程序都可以開啟和覆蓋,所以不可能完全避免檔案覆蓋的情況。1.多執行緒寫資料庫問題。sqlite資料庫是支援多程序併發讀寫,...
討論SQLite資料庫損壞與修復
昨晚,朋友和我反饋sqlite資料庫發生損壞有沒有辦法恢復。大致的情況是這樣的,當資料庫在使用時不小心用了新的檔案覆蓋資料庫,導致了sqlite資料庫出現了損壞,開啟的時候出現要輸入密碼,而且不能把sql語句dump下來。所以,文章這裡整理sqlite資料庫出現損壞的所有情況,以及如何修復損壞的sq...
sqlite3資料庫損壞修復
前陣子由於分割槽空間滿出現了sqlite3資料庫檔案損壞的現象,操作的時候報錯 error database disk image is malformed 這裡記錄一下修復的操作過程 sqlite3 test file.db 開啟損壞的資料庫檔案 output recovery.sql 設定輸出檔...