经常会有人问安装完了mysql,但是以前没有安装XXX 引擎,现在需要在线动态加载。
对于此问题我自根据自己的工作总结了下:
1.使用源码编译的,默认innobase没有被编译进来;使用二进制包安装的,在启动前,在my.cnf里面加入skip-innodb或是ignore_builtin_innodb。
2.使用源码编译时,不能使用--with-mysqld-ldflags=-all-static选项,以静态方式编译库,当show global variables like 'have_%';的时候,输出有一项是have_dynamic_loading将是NO,这就决定mysql是否支持动态加载plugin;
而二进制包安装的mysql,就是动态编译的,支持动态加载plugin,这项为Yes.
这种就不支持动态加载。
下面的就支持动态加载:
上面的是没有编译时没有用静态编译,如果上面的plugin_dir = /usr/local/mysql/lib/plugin/ 下没有,则拷贝对应的文件到这个目录下。
选择对应的innodb plugin版本,并将其放到plugin_dir下面,plugin的版本和MySQL库的对应表如下
工作中需要查看编译时指定了哪些参数:
1、nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
2、apache编译参数:
# cat $APACHE_HOME/build/config.nice
3、php编译参数:
# /usr/local/php/bin/php -i |grep configure
4、mysql编译参数:
# grep configure /usr/local/mysql/bin/mysqlbug
转载于:https://blog.51cto.com/huanghualiang/1346068