今天发生数据库引擎丢失,mysql无法启动,所有的innodb_***参数mysql都无法失败,提示:


[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

[ERROR] mysql/libexec/mysqld: unknown variable 'innodb_flush_log_at_trx_commit=2'


因为技术太低,所有选择了重新安装,恢复数据,然后再收集了一些其他的技术手段,以提高自己的技术水平,下次遇到了试试,不至于抓瞎


-----------------------------------


http://bbs.csdn.net/topics/350214268


从其他库里拷贝丢失的mysql库的表到本地,记得修改属主属组为mysql

删掉innodb的日志文件


启动试试

-----------


innodb_force_recovery=1 用此选项试试,如果还是启动不了,再加大该值,2,3,4,等

----------------------

如果数据库不是很重要,可以忍受部分数据丢失,可以连ibdata1一块删掉,然后重新导入备份试试


--------------------

show plugin
查看Innodb这条信息就表示安装好了。

如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.so'

注解:

能够使用存储引擎之前,必须使用 INSTALL PLUGIN语句将存储引擎 plugin(插件)装载到mysql。例如,要想加载example引擎,首先应加载ha_example.so模块:
INSTALL PLUGINha_example SONAME 'ha_example.so';

文件.so必须位于MySQL服务器库目录下(典型情况下是installdir/lib)。

14.8. 拔出存储引擎

要想拔出存储引擎,可使用UNINSTALL PLUGIN语句:

UNINSTALL PLUGINha_example;

如果拔出了正被已有表使用的存储引擎,这些表将成为不可访问的。拔出存储引擎之前,请确保没有任何表使用该存储引擎。

14.9. 插件式存储器的安全含义

为了安装插件式存储引擎,plugin文件必须位于恰当的MySQL库目录下,而且发出INSTALL PLUGIN语句的用户必须具有SUPER权限。