您现在的位置是:首页 > 个人博客个人博客
mysql不支持innodb的解决办法
龙沐星2020-03-17【个人博客】85974人已围观
简介要解决这个问题,有以下两种办法;1、首先查看你的mysql是否支持innodb;a、disabled说明innodb引擎已经存在,只是被禁用了,只要开启就好了
要解决这个问题,有以下两种办法
1、首先查看你的mysql是否支持innodb
a、disabled说明innodb引擎已经存在,只是被禁用了,只要开启就好了,修改my.cnf,把innodb=OFF修改为innodb=On,或者注销掉innodb=OFF这一行,然后重启mysql,innodb就可用了
mysql> show variables like ‘%have_innodb%';
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_innodb | DISABLED |
+—————+———-+
1 row in set (0.00 sec)
b、如果have_innodb为No
mysql> show variables like ‘%have_innodb%';
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_innodb | NO |
+—————+———-+
查看是否支持动态加载插件
mysql> show variables like “have_dynamic%”;
+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| have_dynamic_loading | YES |
+———————-+——-+
1 row in set (0.00 sec)
显示为yes表示支持动态加载mysql插件,该值一般为yes,
当使用源码编译安装时不能使用–with-mysqld-ldflags=-all-static选项,以静态方式编译库,这样默认就会是yes,执行以下操作动态加载插件
(如果显示为No,则需要重新编译Mysql,因为have_dynamic_loading这个参数是只读参数)
放入插件文件,找到mysql存放插件的目录
mysql> show variables like ‘plugin_dir';
+—————+———————————–+
| Variable_name | Value |
+—————+———————————–+
| plugin_dir | /usr/local/mysql/lib/mysql/plugin |
+—————+———————————–+
1 row in set (0.00 sec)
在该目录中查看是否已有ha_innodb.so和ha_innodb_plugin.so两个文件
若没有可以去网上下载与所安装mysql对应的版本,或者直接去mysql源码包中storage/innobase/.libs/ha_innodb.so
添加动态安装加载
mysql> INSTALL PLUGIN InnoDB SONAME ‘ha_innodb.so';
Query OK, 0 rows affected (0.61 sec)
查看现在是否支持innodb
mysql> show plugins;
也可以用以下方法删除innodb支持
mysql> UNINSTALL PLUGIN innodb;
2、还可以重新编译mysql
mysql不支持innodb,说明在对mysql进行编译安装时,缺少支持innodb的参数
–with-plugins=innobase 或者–with-plugins=all #这是在5.5版本前
–DWITH_INNOBASE_STORAGE_ENGINE=1 #这是在5.5以后版本,用cmake编译时支持innodb所用的参数
编译完成了之后,重新安装mysql就发现可以支持innodb了。
1、首先查看你的mysql是否支持innodb
a、disabled说明innodb引擎已经存在,只是被禁用了,只要开启就好了,修改my.cnf,把innodb=OFF修改为innodb=On,或者注销掉innodb=OFF这一行,然后重启mysql,innodb就可用了
mysql> show variables like ‘%have_innodb%';
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_innodb | DISABLED |
+—————+———-+
1 row in set (0.00 sec)
b、如果have_innodb为No
mysql> show variables like ‘%have_innodb%';
+—————+———-+
| Variable_name | Value |
+—————+———-+
| have_innodb | NO |
+—————+———-+
查看是否支持动态加载插件
mysql> show variables like “have_dynamic%”;
+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| have_dynamic_loading | YES |
+———————-+——-+
1 row in set (0.00 sec)
显示为yes表示支持动态加载mysql插件,该值一般为yes,
当使用源码编译安装时不能使用–with-mysqld-ldflags=-all-static选项,以静态方式编译库,这样默认就会是yes,执行以下操作动态加载插件
(如果显示为No,则需要重新编译Mysql,因为have_dynamic_loading这个参数是只读参数)
放入插件文件,找到mysql存放插件的目录
mysql> show variables like ‘plugin_dir';
+—————+———————————–+
| Variable_name | Value |
+—————+———————————–+
| plugin_dir | /usr/local/mysql/lib/mysql/plugin |
+—————+———————————–+
1 row in set (0.00 sec)
在该目录中查看是否已有ha_innodb.so和ha_innodb_plugin.so两个文件
若没有可以去网上下载与所安装mysql对应的版本,或者直接去mysql源码包中storage/innobase/.libs/ha_innodb.so
添加动态安装加载
mysql> INSTALL PLUGIN InnoDB SONAME ‘ha_innodb.so';
Query OK, 0 rows affected (0.61 sec)
查看现在是否支持innodb
mysql> show plugins;
也可以用以下方法删除innodb支持
mysql> UNINSTALL PLUGIN innodb;
2、还可以重新编译mysql
mysql不支持innodb,说明在对mysql进行编译安装时,缺少支持innodb的参数
–with-plugins=innobase 或者–with-plugins=all #这是在5.5版本前
–DWITH_INNOBASE_STORAGE_ENGINE=1 #这是在5.5以后版本,用cmake编译时支持innodb所用的参数
编译完成了之后,重新安装mysql就发现可以支持innodb了。
很赞哦! (85974)
相关文章
文章评论
- 评论已关闭
点击排行
站长推荐
猜你喜欢
站点信息
- 建站时间:2015-07-29
- 网站程序:YII 2.0
- 文章统计:24条
- 文章评论:85974条
- 统计数据:百度统计
- 微信公众号:扫描二维码,关注我们