MySQL에서 mysql_plugin은 서버가 로드하는 플러그인을 관리자가 손쉽게 제어할 수 있도록 지원하는 유틸리티입니다. 이 글에서는 mysql_plugin의 개념, 사용 방법, 설정 파일 작성 규칙, 그리고 주요 옵션까지 체계적으로 살펴보겠습니다.
mysql_plugin이란 무엇인가?
mysql_plugin 유틸리티는 MySQL 관리자가 MySQL 서버에 로드되는 플러그인을 관리할 수 있게 해주는 도구입니다.
기존에는 서버 시작 시 --plugin-load 옵션을 직접 지정하거나, 런타임에 INSTALL PLUGIN 및 UNINSTALL PLUGIN 문을 실행해야 했습니다. mysql_plugin은 이러한 수동 작업에 대한 편리한 대안을 제공합니다.
mysql_plugin의 동작 원리
mysql_plugin을 호출하여 플러그인을 활성화(ENABLE)하거나 비활성화(DISABLE)하면, 유틸리티는 플러그인 레지스트리 역할을 하는 mysql.plugin 테이블에 각각 행을 삽입하거나 삭제합니다.
일반적인 서버 시작 시에는 mysql.plugin 테이블에 등록된 플러그인들이 자동으로 로드되고 활성화됩니다.
플러그인 활성화를 더 세밀하게 제어하고 싶다면, 특정 플러그인 이름으로 지정되는 --plugin_name 옵션을 사용할 수 있습니다.
mysql_plugin 호출 방법
mysql_plugin이 실행될 때마다 설정 파일을 읽어 단일 플러그인 라이브러리 파일에 포함된 플러그인들을 어떻게 구성할지 결정합니다. mysql_plugin을 호출하려면 아래 명령어 형식을 사용합니다.
mysql_plugin [options] plugin {ENABLE|DISABLE}
- plugin: 구성하려는 플러그인의 이름을 의미합니다.
- ENABLE 또는 DISABLE: 대소문자를 구분하지 않으며, 설정 파일에 명시된 플러그인 라이브러리의 구성 요소들을 활성화할지 비활성화할지 지정합니다.
참고로 plugin 인수와 ENABLE/DISABLE 인수의 순서는 중요하지 않습니다.
실제 예제로 이해하기
Linux에서는 'myplugins.so', Windows에서는 'myplugins.dll'이라는 이름의 플러그인 라이브러리 파일을 구성한다고 가정해 보겠습니다. 이 경우 plugin 값으로 myplugins를 지정해야 합니다.
이 플러그인 라이브러리에 plugin1, plugin2, plugin3라는 세 개의 플러그인이 포함되어 있고, 세 가지 모두 mysql_plugin으로 관리하려 한다고 해보겠습니다.
설정 파일 작성 규칙
관례상 설정 파일은 .ini 확장자를 가지며, 플러그인 라이브러리와 동일한 기본 이름을 사용합니다. 따라서 이 플러그인 라이브러리의 기본 설정 파일명은 'myplugins.ini'입니다.
설정 파일의 내용은 다음과 같습니다.
myplugins plugin1 plugin2 plugin3
- 첫 번째 줄: .so나 .dll 같은 확장자를 제외한 라이브러리 파일의 이름입니다.
- 나머지 줄: 활성화 또는 비활성화할 구성 요소들의 이름입니다.
- 파일 내 각 값은 반드시 별도의 줄에 작성해야 합니다.
- 첫 문자가 '#'인 줄은 주석으로 간주되어 무시됩니다.
플러그인 활성화 및 비활성화
설정 파일에 나열된 플러그인들을 활성화하려면 아래 명령을 실행합니다.
shell> mysql_plugin myplugins ENABLE
플러그인을 비활성화하려면 ENABLE 대신 DISABLE을 사용하면 됩니다.
만약 mysql_plugin이 설정 파일이나 플러그인 라이브러리 파일을 찾지 못하거나, MySQL 서버를 시작할 수 없는 경우 오류가 발생합니다.
mysql_plugin 주요 옵션 정리
mysql_plugin은 아래 옵션들을 지원합니다. 이 옵션들은 명령줄에서 지정하거나, 임의의 옵션 파일 내 [mysqld] 그룹에 작성할 수 있습니다.
--help, -?
도움말 메시지를 출력한 후 종료합니다.
--basedir=dir_name, -b dir_name
서버 베이스(base) 디렉터리를 지정합니다.
--datadir=dir_name, -d dir_name
서버 데이터 디렉터리를 지정합니다.
--my-print-defaults=file_name, -b file_name
my_print_defaults 프로그램이 존재하는 경로를 지정합니다.
--mysqld=file_name, -b file_name
mysqld 서버의 경로를 지정합니다.
--no-defaults, -p
설정 파일에서 값을 읽지 않도록 합니다. 이 옵션을 사용하면 관리자가 설정 파일의 기본값 읽기를 건너뛸 수 있습니다.
--plugin-dir=dir_name, -p dir_name
서버 플러그인 디렉터리를 지정합니다.
--verbose, -v
상세(verbose) 모드로, 프로그램이 수행하는 작업에 대한 더 많은 정보를 출력합니다. 이 옵션을 여러 번 지정하면 출력되는 정보의 양을 늘릴 수 있습니다.
--version, -V
버전 정보를 출력한 후 종료합니다.