sqlite 修復 database disk image is malformed 問題
阿新 • • 發佈:2019-01-29
這個問題是在解決客戶工程的時候遇到的。
在網上的解決方法大多一致,就是先在舊資料庫中匯出sql檔案再匯入一個新資料庫中。
暫時沒有找到在圖形介面下的匯入匯出選項,所以先用著命令行了。
SQLite官網這裡可以下載對應的命令列視窗工具,檔案比較小。
如果是Windows系統的話,第三個檔案就是了。
然後在cmd中執行其中的sqlite3.exe檔案:
直接執行肯定不行嘛,先定位到sqlite3.exe的目錄底下,用命令cd來實現。
然後再用命令連線對應的資料庫sqlite3.exe XXX.db
直接連線的話就是按預設路徑來了,當然你也可以用絕對路徑來指定對應的資料庫,比如sqlte3.exe E:\test.db這樣。
如果對應的資料庫不存在則會自動建立。
接下來按套路走就行了。
[這一段程式碼網上直接copy過來了]
匯出:
sqlite>.output tmp.sql
sqlite>.dump
sqlite>.quit
匯入:
注意:預設新建的資料庫編碼格式為utf-8,如果你原資料庫編碼是utf-16或者其他什麼的話,請在.read操作前加上命令PRAGMA encoding = "UTF-XXX"調整到對應的編碼格式後再做其他操作。
sqlite3 mynew.db
sqlite>.read tmp.sql
sqlite>.quit
然後這個新的mynew.db資料庫中就存好我們之前資料庫中的東西了。好,問題解決,可喜可賀可喜可賀。