簡體   English   中英

Laravel sqlite表示數據庫“已加密或不是數據庫”

[英]Laravel sqlite saying the database is “encrypted or is not a database”

我的計算機上有一個名為testing.sqlite的數據庫文件,其中包含我要用於測試的數據庫副本(而不是連接到普通的MySQL生產服務器)。

我按照指示在laravel的config / database文件中創建了一個條目,將其設置為訪問sqlite文件,一切看起來都不錯。 但是,當我嘗試執行任何操作時,會收到錯誤消息:

[Illuminate\Database\QueryException]                                                                                                                        
SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database (SQL: select * from sqlite_master where type = 'table' and name = vendor_alerts)

我可以從命令行使用sqlite testing.sqlite訪問該文件,為什么laravel無法讀取它?

問題是sqlite的版本不同。 Laravel使用sqlite3,但是控制台上的sqlite命令可能是較早的版本。 從命令行運行sqlite -version以檢查您的版本-大概是2件事情。 您需要安裝sqlite3,並且會發現它不兼容-即sqlite3 testing.sqlite將產生與laravel相同的錯誤。

因此,升級您的命令行sqlite版本,然后將數據復制到新的sqlite3數據庫中,laravel將正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM