MySQLはlib_mysqludf_sysは、外部プログラムとシステム・コマンドの呼び出しを実装して実行します

MySQLのクエリ環境

MySQLのクエリプラグインディレクトリのパス

show variables like "plugin_dir";

ここに画像を挿入説明
ビット数を見るのMySQL

show variables like '%version_%';

ここに画像を挿入説明

lib_mysqludf_sysインストール

https://github.com/mysqludf/lib_mysqludf_sys

機能を備えたUDFライブラリは、オペレーティングシステムと対話します。これらの機能を使用すると、MySQLが実行される実行環境と対話することを可能にします。

次のようにディレクトリ構造は次のとおりです。
ここに画像を挿入説明

コンパイルソースコード

システムの環境上のMySQL自体によると、Makefileを修正

原Makefile

LIBDIR=/usr/lib

install:
    gcc -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so

変更されたMakefile

LIBDIR=/usr/lib/mysql/plugin

install:
    gcc -fPIC -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so

メイクを実行し、新しいlib_mysqludf_sys.soを生成

注:ソース32はlib_mysqludf_sys.soに来ます

そこlib_mysqludf_sys.so下には/ usr / lib64に/ mysqlの/プラグインディレクトリは、MySQLがドッキングウィンドウ環境であれば、次のコマンドを使用し、次のとおりです。

docker cp lib_mysqludf_sys.so a6e96adf79e2:/usr/lib/mysql/plugin/

作成機能

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';

ここに画像を挿入説明

エラー

ERROR 1126(HY000):開くことができません共有ライブラリ 'lib_mysqludf_sys.so'(errnoに:2 /usr/lib/mysql/plugin/lib_mysqludf_sys.so:間違ったELFクラス:ELFCLASS32)

ビューは、ファイルlib_mysqludf_sys.soています

file lib_mysqludf_sys.so 

これはlib_mysqludf_sys.so 32ビットシステムでコンパイルされ、私たちのMySQLの中央値X86_64さ
ここに画像を挿入説明
lib_mysqludf_sys.soを表示するメイクファイルが生成され

file lib_mysqludf_sys.so 

ここに画像を挿入説明

実行lib_mysqludf_sys

SELECT sys_eval('pwd'); 

ここに画像を挿入説明

select * from mysql.func;

ここに画像を挿入説明

72元記事公開 ウォン称賛66 ビュー150,000 +を

おすすめ

転載: blog.csdn.net/miaodichiyou/article/details/102566958