MYSQL
HOME > DB > MYSQL
2018.09.30 / 22:38

MySQL UDF ¼³Ä¡ ¹× »ç¿ëÇϱâ - mysql trigger java run

GAScripter
Ãßõ ¼ö 223

MySQL UDF ¼³Ä¡ ¹× »ç¿ëÇϱâ

 

1. http://www.mysqludf.org/ ¿¡¼­  

  UDF libraries Ŭ¸¯ÇÑ ´ÙÀ½ GitHub ¿¡¼­ ´Ù¿î·Îµå

 

2. Àӽà µð·ºÅ丮¿¡ ¾ÐÃàÀ» Ǭ ÈÄ Makefile ¼öÁ¤

 

   ÄÄÆÄÀÏ ¿É¼ÇÀÌ Áß¿ä


   LIBDIR=/home/mysql/lib/plugin

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

 

3.ÄÄÆÄÀÏ

  # make
  
  ldd ·Î µ¿ÀûÆÄÀÏÀÌ Á¤»óÀûÀ¸·Î ÄÄÆÄÀÏ µÇ¾ú´ÂÁö È®ÀÎ

 

  # ldd /home/mysql/lib/plugin/lib_mysqludf_sys.so 
 linux-vdso.so.1 =>  (0x00007fffc570b000)
 libc.so.6 => /lib64/libc.so.6 (0x00007f3e36880000)
 /lib64/ld-linux-x86-64.so.2 (0x0000003cb2400000)

 

4. SQL È®ÀÎ

 

mysql> create function sys_exec returns int soname 'lib_mysqludf_sys.so';
Query OK, 0 rows affected (0.74 sec)

mysql> set @status := sys_exec('echo "hello im root" > /tmp/helloworld');
Query OK, 0 rows affected (0.01 sec)

mysql> select @status;
+---------+
| @status |
+---------+
| 0       |
+---------+
1 row in set (0.00 sec)
mysql> exit

 

# ls -la /tmp/helloworld 

 

Âü°í»çÀÌÆ®

http://0x80.org/blog/executing-commands-in-mysql-with-its-running-privilege/

https://github.com/mysqludf/lib_mysqludf_sys

http://dev.mysql.com/doc/refman/5.0/en/udf-compiling.html

http://adnoctum.tistory.com/231 µ¿Àû¶óÀ̺귯¸®