mysql5.7安裝插件udp(lib_mysqludf_sys)
項(xiàng)目應(yīng)用中需要用mysql執(zhí)行一下命令行.幾經(jīng)搜索可以安裝lib_mysqludf_sys插件可以實(shí)現(xiàn)
本地window環(huán)境安裝(mysql8.0 , 64位 , 使用lib_mysqludf_sys.dll文件)
-- 查看環(huán)境中插件目錄
show variables like '%plugin%';
-- plugin_dir C:/mysql/lib/plugin/
-- 將lib_mysqludf_sys.dll文件放在插件目錄中
-- 這里要注意32位和64位是有區(qū)別的,并不能通用
-- 刪除已存在的函數(shù)
DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
-- 創(chuàng)建函數(shù)
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
-- 執(zhí)行測(cè)試
SELECT sys_exec('whoami');
測(cè)試centos7環(huán)境(mysql5.7.40 , 64位 , lib_mysqludf_sys.so)
-- 查看環(huán)境中插件目錄
show variables like '%plugin%';
-- plugin_dir /usr/lib64/mysql/plugin/
-- 將lib_mysqludf_sys.so文件放在插件目錄中
-- 這里要注意32位和64位是有區(qū)別的,并不能通用
-- 問(wèn)題1.lib_mysqludf_sys.c:40:23: 致命錯(cuò)誤:<my_global.h>:沒(méi)有那個(gè)文件或目錄
-- 造成原因是少了mysql的開(kāi)發(fā)組件,需要單獨(dú)安裝 , rpm安裝對(duì)應(yīng)版本的組件庫(kù)
-- rpm -ivh mysql-community-devel-5.7.40-1.el7.x86_64.rpm
-- 問(wèn)題2.沒(méi)有正確的lib_mysqludf_sys.so文件需要單獨(dú)編譯
-- make & makeinstall 才行
-- 問(wèn)題3.make & makeinstall的時(shí)候報(bào)錯(cuò)沒(méi)有c的環(huán)境 , yum安裝一下
-- yum install gcc gcc-c++
-- 問(wèn)題4.在make & makeinstall之前,需要修改一下Makefile因?yàn)槔锩娴穆窂讲粚?duì)需要改一下 , 如果還報(bào)其他錯(cuò)應(yīng)該還是少其他包 , 百度自行安裝一下
-- LIBDIR=/usr/lib
--
-- install:
-- gcc -fPIC -Wall -m64 -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o /usr/lib64/mysql/plugin/lib_mysqludf_sys.so
-- 里面的路徑根據(jù)自己的環(huán)境修改
-- 刪除已存在的函數(shù)
DROP FUNCTION IF EXISTS lib_mysqludf_sys_info;
DROP FUNCTION IF EXISTS sys_get;
DROP FUNCTION IF EXISTS sys_set;
DROP FUNCTION IF EXISTS sys_exec;
DROP FUNCTION IF EXISTS sys_eval;
-- 創(chuàng)建函數(shù)
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
-- 執(zhí)行測(cè)試
SELECT sys_exec('whoami');
其中使用到的各種文件:
https://github.com/sqlmapproject/sqlmap/issues/2965 這個(gè)里面往下翻有個(gè)lib_mysqludf_sys_64.zip的地址
11年前有人制作的插件,根據(jù)上面的描述重新編譯即可
3.mysql-community-devel-5.7.40-1.el7.x86_64.rpm
mysql的官網(wǎng)可以下,貼個(gè)地址

浙公網(wǎng)安備 33010602011771號(hào)