启动MySQL时出现错误"插件'InnoDB'注册为一个存储引擎失败"。
启动MySQL时出现错误"插件'InnoDB'注册为一个存储引擎失败"。
我在Stackoverflow上找到了许多类似的问题,但没有得到确切的错误解决方法。\n我的问题是,在一台专用的Centos 6.5机器上启动MySQL服务时,出现错误:\n
141018 05:13:46 mysqld_safe 用来自/var/lib/mysql的数据库启动mysqld守护进程 141018 5:13:47 [警告] 无法创建测试文件/var/lib/mysql/ip-184-168-73-83.lower-test 141018 5:13:47 [警告] 无法创建测试文件/var/lib/mysql/ip-184-168-73-83.lower-test /usr/libexec/mysqld: 无法创建/写入文件'/tmp/ibkTWnhE'(错误代码:28) 141018 5:13:48 InnoDB: 错误:无法创建临时文件;errno:28 141018 5:13:48 [错误] 插件'InnoDB'的init函数返回错误。 141018 5:13:48 [错误] 插件'InnoDB'作为存储引擎的注册失败。 141018 5:13:48 [错误] 无法启动服务器:绑定到unix套接字:设备上没有剩余空间 141018 5:13:48 [错误] 您是否已经在套接字/var/lib/mysql/mysql.sock上运行另一个mysqld服务器? 141018 5:13:48 [错误] 中止 141018 5:13:48 [注意] /usr/libexec/mysqld:关闭完成 141018 05:13:48 mysqld_safe 来自/var/run/mysqld/mysqld.pid的mysqld已结束
\n这里是free命令的状态:\nfree -m\n
总计 已使用 空闲 共享 缓冲区 缓存 内存: 3743 3631 111 0 2705 21 -/+ 缓冲区/缓存: 905 2838 交换空间: 2047 0 2047
当启动MySQL时出现错误“Plugin 'InnoDB' registration as a STORAGE ENGINE failed”的原因是由于缺少某些文件或空间不足。解决此问题的方法如下:
- 从路径“..\xampp\mysql\data”和“..\xampp\mysql\backup”中删除或移动以下文件:“aria_log_contro, ib_logfile0, ib_logfile1, ib_data1”。
- 从xampp控制面板停止和启动Apache服务器和MySQL。
这将解决问题,实际上对我有效。
注意:在许多情况下,这将重置数据库,请非常小心。
我想向不知道这些文件包含内容的人们发出警告。删除这些文件可能会严重损坏数据库,您将无法恢复它。ib_logfile包含redo日志(据我所知),对于InnoDB表来说是必不可少的。
OP的错误是空间不足的错误。删除数据文件不是解决此问题的方法。如果删除此答案以避免用户采取破坏数据的行动,在可以轻松恢复数据的情况下将会非常有帮助。
当启动MySQL时出现错误"Plugin 'InnoDB' registration as a STORAGE ENGINE failed",这个问题的出现原因是磁盘存储空间不足。解决方法有以下几点:
1. 增加服务器的RAM内存。
2. 在配置文件中减小innodb-buffer-pool大小的值:
sudo nano /etc/mysql/my.cnf
innodb_buffer_pool_size = 10M
3. 保存/etc/mysql/my.cnf
后,重启MySQL服务:
sudo service mysql restart exit
4. 在内存较小的机器上添加swap分区(具体方法请参考xuri.me/2016/10/25/add-swap-on-ubuntu.html)。
以上是解决问题"Plugin 'InnoDB' registration as a STORAGE ENGINE failed"的方法。
在启动MySQL时出现“Plugin 'InnoDB' registration as a STORAGE ENGINE failed”错误的原因可能是数据库数据损坏。解决方法是将下面提到的Db数据文件(ib_logfile0和ib_logfile1)移动到另一个位置。ib_logfile0和ib_logfile1是InnoDB基础设施的系统表空间。这些文件包含了InnoDB所需的重要信息。你可以在这里了解更多关于这些文件的信息。
在执行以下步骤之前,请备份一份文件(ib_logfile0和ib_logfile1)的副本,以防数据丢失:
1. 通过具有root访问权限的SSH登录服务器。
2. 导航到/var/lib/mysql目录。
3. 如果你看到类似ib_logfile0和ib_logfile1的文件,请将它们重命名或移动到其他文件夹。
4. 运行sudo service mysql stop
和sudo service mysql start
来停止和启动MySQL服务。
重新启动服务器后,这些文件将被重新创建,问题有望得到解决。
感谢回复!这解决了所有的问题。那么你能解释一下为什么日志文件会导致服务器崩溃,以便我们可以防止类似情况再次发生吗?这样我们就可以预防了。
这是我见过的最危险的被点赞的答案。我猜那些通过遵循这样的错误答案导致数据丢失,并且认为每个Innodb错误都是损坏的用户不会回来在评论/点赞时进行评论/点赞。请阅读错误消息,即使你不这样做,也请复制日志文件,不要删除它们,这样至少当你意识到这个答案有多么糟糕时,你可以回退。错误28,perror 28
- 没有空间定义,不是通过删除InnoDB重做日志来修复的,而是通过创建更多的空间。
谢谢!我的数据库出现了相同的错误消息,重命名ib_logfile0和ib_logfile1解决了问题。我没有注意到任何数据丢失(至少应用程序所需的数据仍然存在于数据库文件中)。不过,我不会在没有好的备份的情况下更改这些文件。
谢谢!阅读评论后,我发现我采取了冒险的举动,但是我没有遇到任何数据丢失。我备份了文件(复制并粘贴到其他地方),然后将文件重命名为ib_logfile0_old和ib_logfile1_old,重新启动xampp后问题得到解决。