收到“一般错误:1030 来自存储引擎的错误 168”

Ras*_*att 5 mysql centos

我不确定这是否是发布到的正确 Stack Exchange (StackOverflow 认为它属于其他地方,所以也许在这里会做得更好?)但是当我尝试在 VPS(Centos6)上安装Magento2时,我不断收到此 MySQL 错误,MySQL 5.7.11):

SQLSTATE[HY000]:一般错误:1030 从存储引擎获取错误 168

我四处搜寻,发现这与InnoDB无法写入其数据文件有关。我还发现,遇到相同1030错误的人大多会收到-128错误,并且都很容易识别为 1)innodb_force_recovery设置为大于 0 (我的文件中没有此设置my.cnf,以及 2) 磁盘空间不足(我的 mysql 驱动器上还剩 5GB)

我应该注意到,它在停止并出错之前可以很好地安装 136-162 个表。之后,我尝试手动添加最后一个出错的表,然后它表现出与此问题类似的症状:

无法创建表,但表不存在

MySQL手册说:

“检查 %d 值以了解操作系统错误的含义。例如,28 表示磁盘空间不足。”

所以我的问题是:

  1. 有谁知道代码的168含义吗?-或者-
  2. 在哪里可以找到“%d 值”错误列表,以便我可以了解其他可以尝试的内容?我已经用谷歌搜索了%d value mysql这些搜索条件的其他版本,但没有得到任何有价值的结果(无论如何我都可以破译)

到目前为止我已经尝试过:

  1. 在 my 中添加一行fstab,将 my 文件夹的存储空间增加到/temp2GB
  2. 我尝试修复表格(这实际上不是一个好主意,弄乱了一堆东西)
  3. 我尝试运行mysql_upgrade (我最近更新了 MySQL 安装,以便我可以安装 Magento2,所以我希望我忘记这样做,这可能会起作用)
  4. 其他各种修补型的东西可能会破坏其他我不知道的东西......

如果有人对这些%d描述的位置有任何见解,或者除了该错误的版本-1和版本之外可以为我指出正确的方向28,我将不胜感激。我根本不是数据库专家,但我以前从未在安装数据库时遇到如此多的麻烦,通常非常简单。


编辑:

查看日志后,这是错误的最上面部分,也是失败的表:

 2016-05-15T15:08:22.610729Z 240 [ERROR] InnoDB: Unable to lock
 ./magento_test2/authorization_rule.ibd error: 37
 2016-05-15T15:08:22.610789Z 240 [ERROR] InnoDB: Operating system error
 number 37 in a file operation. 2016-05-15T15:08:22.610840Z 240 [ERROR]
 InnoDB: Error number 37 means 'No locks available'
 2016-05-15T15:08:22.610879Z 240 [Note] InnoDB: Some operating system
 error numbers are described at
 http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
 2016-05-15T15:08:22.610896Z 240 [ERROR] InnoDB: Cannot create file
 './magento_test2/authorization_rule.ibd' 2016-05-15T15:08:23.025333Z 0
 [ERROR] InnoDB: Unable to lock ./magento_test2/quote_address.ibd
 error: 37 2016-05-15 08:08:23 0x7f968ae75700  InnoDB: Assertion
 failure in thread 140284552238848 in file fil0fil.cc line 884 InnoDB:
 Failing assertion: success InnoDB: We intentionally generate a memory
 trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
 InnoDB: If you get repeated assertion failures or crashes, even
 InnoDB: immediately after the mysqld startup, there may be InnoDB:
 corruption in the InnoDB tablespace. Please refer to InnoDB:
 http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
 InnoDB: about forcing recovery. 15:08:23 UTC - mysqld got signal 6 ;
 This could be because you hit a bug. It is also possible that this
 binary or one of the libraries it was linked against is corrupt,
 improperly built, or misconfigured. This error can also be caused by
 malfunctioning hardware. Attempting to collect some information that
 could help diagnose the problem. As this is a crash and something is
 definitely wrong, the information collection process might fail.
Run Code Online (Sandbox Code Playgroud)

我想它一般来说效果不太好。

jka*_*lik 4

[ERROR] InnoDB: Unable to lock ./magento_test2/authorization_rule.ibd error: 37
[ERROR] InnoDB: Error number 37 means 'No locks available'
Run Code Online (Sandbox Code Playgroud)

检查您的操作系统打开文件限制(对于mysql用户) -ulimit -a或者open files可能file locks是 256-512 之间的值(创建了 160 个表,每个表都有 ibd/frm 或 frm/myi/myd 对于可能的 myisam 表意味着超过 300 个文件)并且尝试让它更高。