mysql5.7安装插件udp(lib_mysqludf_sys)

打印 上一主题 下一主题

主题 973|帖子 973|积分 2919

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
项目应用中需要用mysql执行一下命令行.几经搜索可以安装lib_mysqludf_sys插件可以实现
本地window环境安装(mysql8.0 , 64位 , 使用lib_mysqludf_sys.dll文件)
  1. -- 查看环境中插件目录
  2. show variables like '%plugin%';
  3. -- plugin_dir        C:/mysql/lib/plugin/
  4. -- 将lib_mysqludf_sys.dll文件放在插件目录中
  5. -- 这里要注意32位和64位是有区别的,并不能通用
  6. -- 删除已存在的函数
  7. DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
  8. DROP FUNCTION IF EXISTS sys_get;
  9. DROP FUNCTION IF EXISTS sys_set;
  10. DROP FUNCTION IF EXISTS sys_exec;
  11. DROP FUNCTION IF EXISTS sys_eval;
  12. -- 创建函数
  13. CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
  14. CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
  15. CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
  16. CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
  17. CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
  18. -- 执行测试
  19. SELECT sys_exec('whoami');
复制代码
测试centos7环境(mysql5.7.40 , 64位 , lib_mysqludf_sys.so)
  1. -- 查看环境中插件目录
  2. show variables like '%plugin%';
  3. -- plugin_dir        /usr/lib64/mysql/plugin/
  4. -- 将lib_mysqludf_sys.so文件放在插件目录中
  5. -- 这里要注意32位和64位是有区别的,并不能通用
  6. -- 问题1.lib_mysqludf_sys.c:40:23: 致命错误:<my_global.h>:没有那个文件或目录
  7. -- 造成原因是少了mysql的开发组件,需要单独安装 , rpm安装对应版本的组件库
  8. -- rpm -ivh mysql-community-devel-5.7.40-1.el7.x86_64.rpm
  9. -- 问题2.没有正确的lib_mysqludf_sys.so文件需要单独编译
  10. -- make & makeinstall 才行
  11. -- 问题3.make & makeinstall的时候报错没有c的环境 , yum安装一下
  12. -- yum install gcc gcc-c++
  13. -- 问题4.在make & makeinstall之前,需要修改一下Makefile因为里面的路径不对需要改一下 , 如果还报其他错应该还是少其他包 , 百度自行安装一下
  14. -- LIBDIR=/usr/lib
  15. --
  16. -- install:
  17. --         gcc -fPIC -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o /usr/lib64/mysql/plugin/lib_mysqludf_sys.so
  18. -- 里面的路径根据自己的环境修改
  19. -- 删除已存在的函数
  20. DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
  21. DROP FUNCTION IF EXISTS sys_get;
  22. DROP FUNCTION IF EXISTS sys_set;
  23. DROP FUNCTION IF EXISTS sys_exec;
  24. DROP FUNCTION IF EXISTS sys_eval;
  25. -- 创建函数
  26. CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
  27. CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
  28. CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
  29. CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
  30. CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
  31. -- 执行测试
  32. SELECT sys_exec('whoami');
复制代码
 
 
其中使用到的各种文件:
 
1.lib_mysqludf_sys.dll
https://github.com/sqlmapproject/sqlmap/issues/2965 这个里面往下翻有个lib_mysqludf_sys_64.zip的地址
2.lib_mysqludf_sys.so
11年前有人制作的插件,根据上面的描述重新编译即可
3.mysql-community-devel-5.7.40-1.el7.x86_64.rpm
mysql的官网可以下,贴个地址

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表