項目應用中需要用mysql執行一下命令行.幾經搜索可以安裝lib_mysqludf_sys插件可以實現 本地window環境安裝(mysql8.0 , 64位 , 使用lib_mysqludf_sys.dll文件) -- 查看環境中插件目錄 show variables like '%plugin% ...
項目應用中需要用mysql執行一下命令行.幾經搜索可以安裝lib_mysqludf_sys插件可以實現
本地window環境安裝(mysql8.0 , 64位 , 使用lib_mysqludf_sys.dll文件)
-- 查看環境中插件目錄
show variables like '%plugin%';
-- plugin_dir C:/mysql/lib/plugin/
-- 將lib_mysqludf_sys.dll文件放在插件目錄中
-- 這裡要註意32位和64位是有區別的,並不能通用
-- 刪除已存在的函數
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;
-- 創建函數
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';
-- 執行測試
SELECT sys_exec('whoami');
測試centos7環境(mysql5.7.40 , 64位 , lib_mysqludf_sys.so)
-- 查看環境中插件目錄
show variables like '%plugin%';
-- plugin_dir /usr/lib64/mysql/plugin/
-- 將lib_mysqludf_sys.so文件放在插件目錄中
-- 這裡要註意32位和64位是有區別的,並不能通用
-- 問題1.lib_mysqludf_sys.c:40:23: 致命錯誤:<my_global.h>:沒有那個文件或目錄
-- 造成原因是少了mysql的開發組件,需要單獨安裝 , rpm安裝對應版本的組件庫
-- rpm -ivh mysql-community-devel-5.7.40-1.el7.x86_64.rpm
-- 問題2.沒有正確的lib_mysqludf_sys.so文件需要單獨編譯
-- make & makeinstall 才行
-- 問題3.make & makeinstall的時候報錯沒有c的環境 , yum安裝一下
-- yum install gcc gcc-c++
-- 問題4.在make & makeinstall之前,需要修改一下Makefile因為裡面的路徑不對需要改一下 , 如果還報其他錯應該還是少其他包 , 百度自行安裝一下
-- 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
-- 裡面的路徑根據自己的環境修改
-- 刪除已存在的函數
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;
-- 創建函數
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';
-- 執行測試
SELECT sys_exec('whoami');
其中使用到的各種文件:
https://github.com/sqlmapproject/sqlmap/issues/2965 這個裡面往下翻有個lib_mysqludf_sys_64.zip的地址
11年前有人製作的插件,根據上面的描述重新編譯即可
3.mysql-community-devel-5.7.40-1.el7.x86_64.rpm
mysql的官網可以下,貼個地址