【问题标题】:MySQL Error Code: 1030Got error -1 from storage engine; I've tried to delete data from my databaseMySQL 错误代码:1030Got error -1 from storage engine;我试图从我的数据库中删除数据
【发布时间】:2010-11-01 08:24:53
【问题描述】:

我有一个包含一些表的数据库,当我想从包含“自动增量”字段的表中删除数据时,使用以下查询:

delete from test.table1 ;

我收到了这个错误:

 Error Code: 1030Got error -1 from storage engine

为什么会这样?我该怎么办?

【问题讨论】:

  • 检查所有文件的权限和所有权。 table1 引擎是 InnoDB 吗?您使用哪个 MySQL 版本?
  • 不是权限问题,这个错误只是table1中有“auto increment”字段时出现的。数据库中所有表的引擎都是“InnoDB”。软件版本为:5.2.25 CE。

标签: mysql database mysql-error-1030


【解决方案1】:

尝试更改innodb_force_recovery 值(在您的/etc/my.cnf 中)。

错误 -1 什么也没说。没有您的表格创建代码 (SHOW CREATE TABLE table_name) 无法说出问题出在哪里。

【讨论】:

  • 警告:这是为了恢复您的数据库。如果您继续使用innodb_force_recovery ,祝您好运。
【解决方案2】:

如果您的文件系统已满,您也会收到此错误。

【讨论】:

  • 我想知道如何清空文件系统。我的错误是 #1030 - 从存储引擎得到错误 -1。我们刚刚从安装的服务器克隆了操作系统。
【解决方案3】:

我刚拿到这个,这是因为我希望新表所在的 SSD 驱动器上的新文件夹是在 root 下创建的,而 mysql 在 mysql 用户下运行。所以 cd 到你的数据文件夹 chown mysql 。 它解决了问题。

【讨论】:

    【解决方案4】:

    转到 /etc/my.cnf 或 /etc/mysql/my.cnf

    注释行 innodb_force_recovery=1

    保存文件并重启mysql

    【讨论】:

      【解决方案5】:

      尝试repair 表(ISAM 引擎)

      如果它的 innodb 引擎看看这个链接:

      http://www.mysqlperformanceblog.com/2008/07/04/recovering-innodb-table-corruption/

      【讨论】:

      • 我检查了我的表,使用这个查询,“CHECK TABLE test.table1;”消息文本为“OK”,因此表示该表没有损坏,但甚至无法重命名该表中的字段:(
      【解决方案6】:

      我在从 Innodb 表中删除 2 行时也遇到了这个错误,只有 2 行无法删除。我用谷歌搜索了错误,但找不到更好的解决方案。

      所以我尝试了这个:

      1. 为我的数据库创建备份(导出数据库)。

      2. 重新安装 MySQL 服务器

      3. 正在恢复我的数据库(正在导入数据库)。

      4. 那么删除/更新时没有-1引擎错误。

      成功...

      我认为错误可能是由于 MySQL 服务器对存储引擎的配置无效。

      谢谢……

      【讨论】:

        【解决方案7】:

        FIXED!!通过df -h检查你的记忆。还要检查 inode df -i。如果已满,请删除一些文件。

        【讨论】:

          【解决方案8】:

          我发现没有任何答案被选为正确答案。

          我发现在我们的数据库配置中我们配置了 innodb_force_recovery。 一旦我们禁用/注释掉它,查询就会按预期运行。

          【讨论】:

          • 票数最高的答案也说了同样的话。您还想添加其他内容吗?
          • 投票最多的答案是更改 innodb_force_recovery 的值,但不会更改为应有的值或​​删除/注释掉配置文件中的值。
          • 嗯,这意味着同样的事情。如果仍然不清楚,还有其他答案说要专门评论它。正如我上面所说,您的回答不会为已发布的答案添加任何内容。
          • @VivekKumar 不,大多数投票的答案不一样。“更改 innodb_force_recovery”与“评论 innodb_force_recovery 或设置为 0”不同
          【解决方案9】:

          /etc/mysql/my.cnf 处找到innodb_force_recovery 的值(适用于linux)。如果是0,请将其删除或注释掉。

          示例

          innodb_force_recovery = 0
          

          改成:

          #innodb_force_recovery = 0
          

          参考:

          InnoDB:innodb_force_recovery 开启:我们不允许 InnoDB:数据库 用户修改。

          【讨论】:

            【解决方案10】:

            对我来说,问题是通过重新启动我的数据库(在我的情况下是 Mariadb)来解决的。

            systemctl restart mariadb
            

            【讨论】:

              【解决方案11】:

              修改成

              #innodb_force_recovery = 1
              

              对我有用。

              【讨论】:

                【解决方案12】:

                这是我解决它的方法,我只是遇到了同样的错误:

                1. 打开控制面板
                2. 选择卸载程序
                3. 右键单击并在 Microsoft Visual Basic 工具上选择“卸载”
                4. 重启电脑

                【讨论】:

                • 您能解释一下这是如何解决问题的吗?这不是假设 OP 使用的是 Windows 吗?如果您想保留 Microsoft Visual Basic 工具怎么办?
                猜你喜欢
                • 2013-04-06
                • 2017-12-19
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-05-07
                • 1970-01-01
                • 2018-10-08
                • 1970-01-01
                相关资源
                最近更新 更多