13.7.3.3 INSTALL PLUGIN 구문
INSTALL PLUGIN plugin_name
soname ' shared_library_name
'
이 문은 서버 플러그인을 설치합니다. 여기에는 mysql.plugin
테이블에 대한 INSERT
권한이 필요합니다.
plugin_name
라이브러리 파일에 포함되어있는 플러그인 디스크립터 구조에 정의 된 플러그인의 이름입니다 ( 섹션 24.2.4.2 "플러그인 데이터 구조" 를 참조하십시오). 플러그인 이름은 대소 문자를 구분하지 않습니다. 플러그인 이름은 C 소스 파일 쉘 명령 행, M4 및 Bourne 쉘 스크립트, SQL 환경에서 사용되므로 극대화 호환성을 위해 플러그인 이름은 ASCII 문자, 숫자 및 밑줄로 제한 하도록하십시오.
shared_library_name
플러그인 코드가 포함 된 공유 라이브러리의 이름입니다. 이 이름에는 파일 확장명이 포함되어 있습니다 ( libmyplugin.so
, libmyplugin.dll
, libmyplugin.dylib
등).
공유 라이브러리는 플러그인 디렉토리 ( plugin_dir
시스템 변수에 지정된 디렉토리)에 존재해야합니다. 이 라이브러리는 하위 디렉토리가 아닌 플러그인 디렉토리 자체에 존재해야합니다. 기본적으로 plugin_dir
는 pkglibdir
구성 변수에 지정된 디렉토리 아래의 plugin
디렉토리이지만, 서버가 시작될 때 plugin_dir
값을 설정하여 변경할 수 있습니다. 예를 들어, my.cnf
파일에서 그 값을 설정합니다.
[mysqld]
plugin_dir = /path/to/plugin/directory
plugin_dir
값이 상대 경로 인 경우, MySQL 기반 디렉토리 ( basedir
시스템 변수의 값)을 기준으로하는 것으로 간주됩니다.
INSTALL PLUGIN
플러그인을 사용 가능하게하기 위해 플러그인 코드를로드하고 초기화합니다. 플러그인은 사용 가능하게되기 전에 그 플러그인이 실행해야하는 모든 설정을 처리하는 그 초기화 함수를 실행하여 초기화됩니다. 서버는 종료 될 때로드되는 각 플러그인의 초기화 해제 함수를 실행하면 그 플러그인에 최종 정리 작업을 수행하기위한 변경이 발생합니다.
INSTALL PLUGIN
또한 플러그인 이름과 라이브러리 파일 이름을 나타내는 행을 mysql.plugin
테이블에 추가하여 플러그인의 등록도 실시합니다. 서버 시작시 서버는 mysql.plugin
테이블에 나열되어있는 모든 플러그인을로드하고 초기화합니다. 즉, 플러그인은 서버가 시작할 때마다 아니라 한 번만 INSTALL PLUGIN
에 의해 설치됩니다. 시작 플러그인로드는 서버가 --skip-grant-tables
옵션으로 기동 된 경우는 실행되지 않습니다.
플러그인 라이브러리는 여러 플러그인을 포함 할 수 있습니다. 각 플러그인을 설치하려면 별도의 INSTALL PLUGIN
명령문을 사용합니다. 각 문은 다른 플러그인을 지정하지만, 그 모든 것이 동일한 라이브러리 이름을 지정합니다.
INSTALL PLUGIN
을 지정하면 서버는 서버 시작시와 마찬가지로 옵션 ( my.cnf
) 파일을 읽습니다. 이렇게하면 플러그인은이 파일에서 모든 관련 옵션을 얻을 수 있습니다. 플러그인을로드하기 전이라도 옵션 파일에 플러그인 옵션을 추가 할 수 있습니다 ( loose
프리픽스가 사용되는 경우). 또한 플러그인을 제거하거나 my.cnf
를 수정하거나 플러그인을 다시 설치 할 수 있습니다. 플러그인을이 방법으로 다시 시작하면 서버를 다시 시작하지 않고 새로운 옵션 값을 지정할 수 있습니다.
서버 시작시 개별 플러그인로드를 제어하는 옵션은 섹션 5.1.8.1 "플러그인 설치 및 제거" 를 참조하십시오. 서버에 시스템 테이블을 읽지 못하도록 지시하는 --skip-grant-tables
옵션이 지정된 경우 한 번 서버 시작시 플러그인을로드 할 필요가있는 경우 --plugin-load
옵션을 사용하여 합니다. 섹션 5.1.3 "서버 명령어 옵션" 을 참조하십시오.
플러그인을 제거하려면 UNINSTALL PLUGIN
문을 사용합니다.
플러그인 로딩에 대한 추가 정보는 섹션 5.1.8.1 "플러그인 설치 및 제거" 를 참조하십시오.
설치되어있는 플러그인을 확인하려면 SHOW PLUGINS
문을 사용하거나 INFORMATION_SCHEMA.PLUGINS
테이블에 쿼리합니다.
플러그인 라이브러리를 다시 컴파일 할 때 그것을 다시 설치해야하는 경우 다음 방법 중 하나를 사용할 수 있습니다.
UNINSTALL PLUGIN
을 사용하여 라이브러리의 모든 플러그인을 제거하고 새로운 플러그인 라이브러리 파일을 플러그인 디렉토리에 설치 한 후INSTALL PLUGIN
을 사용하여 모든 플러그인을 라이브러리에 설치합니다. 이 절차는 서버를 중지하지 않고 사용할 수 있다는 장점이 있습니다. 그러나 플러그인 라이브러리에 다수의 플러그인이 포함되어있는 경우, 다수의INSTALL PLUGIN
및UNINSTALL PLUGIN
명령문을 발행해야합니다.서버를 중지하고 새로운 플러그인 라이브러리 파일을 플러그인 디렉토리에 설치 한 후 서버를 다시 시작합니다.