Cakephp 3.x:SQLSTATE[HY000]:一般错误:11 数据库磁盘映像格式错误

问题描述 投票:0回答:7

当我将应用程序上传到 Linux 时,出现此错误。这在我的本地 Windows 系统上工作正常,但在 Linux 服务器上却出现错误。当我搜索这个问题时,我发现这是 sqLite 相关的问题。如果这是 sqLite 问题,那么我如何将其更改为 MySQL。

请帮助我。

php mysql cakephp cakephp-3.0
7个回答
40
投票

删除/tmp/debug_kit.sqlite


6
投票

删除tmp文件夹

删除/tmp/*

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

chmod -R 777 书签


4
投票

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


1
投票

我刚刚在使用 OSX 10.11 w/ MAMP (MySQL + Apache 2) 的机器上遇到了同样的问题

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


0
投票

在 Laravel SQlite 上下文中

我也遇到这个错误。我的堆栈是

Laravel
,带有
SQlite
数据库和
Ubuntu
作为操作系统。就我而言,我尝试使用 DBBrowser for Sqlite 编辑列。但这些变化并没有受到影响,我又开始迁移。后来我得到了这个错误

SQLSTATE[HY000]:一般错误:11 数据库磁盘映像格式错误 (SQL:创建表“migrations”(“id”整数不为空主键 自动增量,“迁移”varchar 不为空,“批量”整数不 空))

我用

rm pathToDatabase/database.sqlite
删除了database.sqlite。之后我就可以再次迁移数据了。


0
投票

Sqlite、主机 OSX、在 alpine 上运行的 docker 容器

我最近遇到了同样的错误。在开发过程中,我经常在直接在本地计算机(主机)上运行应用程序和 Docker 容器之间切换。从 OSX 创建我的数据库文件,然后尝试从我的容器 (Linux) 读取/写入它后,会出现错误。删除从 OSX 创建的数据库文件解决了问题。

我猜这两个文件系统(OSX 和 Linux)是不同的,所以不要混合它们的数据库文件。

PS。此错误并非 CakePHP 特有的。我的是#symfony 应用程序。


-2
投票

此错误可能是由硬件、文件系统或操作系统故障引起的,导致磁盘安全文件损坏。磁盘安全的可行性部分依赖于主机存储设备的底层硬件和操作系统的稳定性。

最安全的解决方案是在 Server Backup 报告数据库磁盘映像格式错误后立即创建新的磁盘安全。在某些情况下,磁盘保险箱仍可用于恢复在磁盘保险箱报告损坏之前创建的恢复点。但是,我们无法确定损坏的程度,或者下面提到的解决方法是否能够修复磁盘保险箱。此外,我们预计损坏的磁盘保险箱不会在裸机恢复中成功。

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

© www.soinside.com 2019 - 2024. All rights reserved.