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;