动态编译MySQL plugin

经常会有人问安装完了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.

spacer.gif

spacer.gif

这种就不支持动态加载

下面的就支持动态加载:

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

上面的是没有编译时没有用静态编译,如果上面的plugin_dir = /usr/local/mysql/lib/plugin/ 下没有,则拷贝对应的文件到这个目录下。

选择对应的innodb plugin版本,并将其放到plugin_dir下面,plugin的版本和MySQL库的对应表如下

spacer.gif

工作中需要查看编译时指定了哪些参数:

1nginx编译参数:

#/usr/local/nginx/sbin/nginx -V

2apache编译参数:

# cat $APACHE_HOME/build/config.nice

3php编译参数:

# /usr/local/php/bin/php -i |grep configure

4mysql编译参数:

# grep configure /usr/local/mysql/bin/mysqlbug

 

你可能感兴趣的:(mysql,动态编译,plugin)