今天发生数据库引擎丢失,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'
因为技术太低,所有选择了重新安装,恢复数据,然后再收集了一些其他的技术手段,以提高自己的技术水平,下次遇到了试试,不至于抓瞎
-----------------------------------
从其他库里拷贝丢失的mysql库的表到本地,记得修改属主属组为mysql
删掉innodb的日志文件
启动试试
-----------
innodb_force_recovery=1 用此选项试试,如果还是启动不了,再加大该值,2,3,4,等
----------------------
如果数据库不是很重要,可以忍受部分数据丢失,可以连ibdata1一块删掉,然后重新导入备份试试
--------------------
show plugin
查看Innodb这条信息就表示安装好了。
如果没有安装成功或者是在已经安装好mysql的情况下,只要执行下面语句再安装一次就OK。
install plugin innodb soname 'ha_innodb.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权限。