MySQL se ejecuta lib_mysqludf_sys implementar llamadas a programas externos y comandos del sistema

entorno de MySQL Query

plug-in de consulta MySQL ruta del directorio

show variables like "plugin_dir";

Aquí Insertar imagen Descripción
Ver el número de bits MySQL

show variables like '%version_%';

Aquí Insertar imagen Descripción

instalación lib_mysqludf_sys

https://github.com/mysqludf/lib_mysqludf_sys

Una biblioteca de UDF con funciones para interactuar con el sistema operativo. Estas funciones le permiten interactuar con el entorno de ejecución en el que se ejecuta MySQL.

estructura de directorios es la siguiente:
Aquí Insertar imagen Descripción

Compilar el código fuente

Modificar el Makefile, según la propia MySQL en el entorno del sistema

Makefile original

LIBDIR=/usr/lib

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

Makefile modificado

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

Ejecutar marca, generar nuevos lib_mysqludf_sys.so

Nota: la fuente 32 viene a lib_mysqludf_sys.so

¿Hay lib_mysqludf_sys.so en / usr / lib64 / mysql / plugin directorio, si es MySQL entorno de estibador, utilice el siguiente comando:

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

función de creación

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

Aquí Insertar imagen Descripción

error

ERROR 1126 (HY000): No se puede abrir la biblioteca compartida 'lib_mysqludf_sys.so' (Error: 2 /usr/lib/mysql/plugin/lib_mysqludf_sys.so: mal de clase ELF: ELFCLASS32)

Ver archivo viene lib_mysqludf_sys.so

file lib_mysqludf_sys.so 

Se compila en sistemas de 32 bits lib_mysqludf_sys.so, y nuestra X86_64 mediana MySQL
Aquí Insertar imagen Descripción
archivo de vista maquillaje genera lib_mysqludf_sys.so

file lib_mysqludf_sys.so 

Aquí Insertar imagen Descripción

lib_mysqludf_sys de ejecución

SELECT sys_eval('pwd'); 

Aquí Insertar imagen Descripción

select * from mysql.func;

Aquí Insertar imagen Descripción

Publicado 72 artículos originales · ganado elogios 66 · Vistas de 150.000 +

Supongo que te gusta

Origin blog.csdn.net/miaodichiyou/article/details/102566958
Recomendado
Clasificación