Cakephp 3.x: SQLSTATE[HY000]: General error: 11 database disk image is malformed

Cakephp 3.x: SQLSTATE[HY000]: General error: 11 database disk image is malformed

我在将申请上传到 linux 时遇到此错误。这在我的本地 windows 系统上工作正常,但在 linux 服务器上给我错误。当我对此进行搜索时,我发现这是与 sqlite 相关的问题。如果这是 sqlite 问题,那么如何将其更改为 MySQL.

请帮帮我

此错误可能是由于硬件、文件系统或操作系统故障导致磁盘安全文件损坏。磁盘安全的可行性在一定程度上取决于主机存储设备的底层硬件和操作系统的稳定性。

最安全的解决方案是,一旦服务器备份报告数据库磁盘映像格式错误,就创建一个新的磁盘安全。在某些情况下,磁盘保险箱可能仍可用于恢复在磁盘保险箱报告损坏之前创建的恢复点。但是,我们无法确定损坏的程度,也无法确定下面提到的解决方法是否能够修复 Disk Safe。此外,我们不希望损坏的磁盘安全在裸机还原中成功。

您可以尝试通过 运行 磁盘安全验证 (DSV) 任务(在 Server Backup v5.2.0 中引入)来修复磁盘保险箱) 对磁盘安全与格式错误的图像。 DSV 将检查最近的恢复点以确保所有块都被考虑在内。如果磁盘安全验证失败,将在下一个复制任务期间尝试修复,该任务将尝试从恢复点协调任何丢失的块。

我刚刚在使用 OSX 10.11 w/ MAMP (MySQL + Apache 2)

的机器上遇到了同样的问题

它有助于清除 cake3 安装中的 tmp/ 目录 - 这个问题在不同的数据库中仍然存在,所以我认为它一定是本地文件而不是数据库的问题。

删除/tmp/debug_kit.sqlite

删除 tmp 文件夹

删除/tmp/*

如果您正在获得进一步的权限,请向 cakephp 文件夹发出 set 777 权限

chmod -R 777 书签

删除/tmp/*目录。希望能解决。

在 Laravel SQlite 上下文中

我也遇到了这个错误。我的堆栈是 LaravelSQlite 数据库和 Ubuntu 作为 OS。在我的例子中,我尝试使用 DBBrowser for Sqlite 编辑一个列。但是这些变化没有受到影响,我又开始迁移了。后来我得到这个错误

SQLSTATE[HY000]: General error: 11 database disk image is malformed (SQL: create table "migrations" ("id" integer not null primary key autoincrement, "migration" varchar not null, "batch" integer not null))

我用 rm pathToDatabase/database.sqlite 删除了 database.sqlite。之后我又可以迁移数据了。