본문 바로가기
DEV/DB

[MySQL]에서 Shell command 사용

by 땅콩둘기 2020. 4. 21.
반응형

Trigger 란 테이블에 이벤트 발생시 자동으로 실행되는 작업입니다. 

Trigger를 사용하기 위해 했던 설정을 공유하고자 합니다.

 

Lib_MySql_Sys 설치하기

MySQL에서 Trigger 사용할 때 sys_exec 사용해야했고 lib_mysql_sys 설치해서 사용했다.

우선 gitbash를 사용해 git hub에서 lib_mysql_sys 라이브러리 설치한다.

$ git clone https://github.com/mysqludf/lib_mysqludf_sys.git

설치된 파일로 들어가기

$ cd lib_mysqludf_sys/

컴파일 도구 설치해주기

$sudo apt-get install build-essential

Makfile 열어서 Mysql에서 사용할 수 있도록 변경

$vi 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

이렇게 변경 후 나가기 (-fPIC 안 하면 오류 발생!)

libmysqlclient 설치

$sudo apt-get install libmysqlclient-dev

빌드 해주기

$ ./install.sh

설치는 완료되었지만 비활성화되어 있기 때문에 활성화해주기

$ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

재시작 해주기

$ sudo /etc/init.d/mysql restart
$ sudo /etc/init.d/apparmor restart

사용 준비 완료!


Test 해보기

mysql 접속

$ mysql -u root -p

$ mysql -u root -p

sys_eval test 해보기

> SELECT sys_eval ("id");

결과

이렇게 나오면 성공!

반응형

'DEV > DB' 카테고리의 다른 글

[MySQL] JOIN 하기  (0) 2020.08.04
[MySQL] DATETIME 가공하기  (1) 2020.08.03
[MySQL] NULL 처리하기  (0) 2020.07.31
[MySQL] 프로그래머스 입양 시각 구하기(2)  (0) 2020.07.31
[MySQL] 중복 제거/ 중복 찾기  (0) 2020.07.31

댓글