环境:RHEL 5, MySQL 5
一直都以为mysql 不能像oracle/db2/sql server那样在存储过程或函数中执行操作命令,今天在网上发现有个lib_mysqludf_sys可以实现这种功能。这个库文件在http://www.mysqludf.org/lib_mysqludf_sys/index.php上。
解压后其中有一个库文件是lib_mysqludf_sys.so,将其中放到mysql的 –plug-dir目录下(ps -ef | grep mysql可以查到plug-dir 或 在mysql命令行中查询select @@plugin_dir;),重新启动mysql服务。进入mysql命令行中,选择mysql数据库,执行CREATE FUNCTION sys_eval RETURNS STRING SONAME ‘lib_mysqludf_sys.so’; 这样就可以执行OS命令了,mysql>select sys_eval(‘ls’);