• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 1. MySQL Server
    1. 서버 옵션 및 변수 설명
    2. 서버 구성의 기본값
    3. 서버 명령 옵션
    4. 서버 시스템 변수
    5. 시스템 변수 사용
    6. 서버 상태 변수
    7. 서버 SQL 모드
    8. 서버 플러그인
    1. 플러그인 설치 및 제거
    2. 서버 플러그인 정보 검색
    9. IPv6 지원
    10. 서버측 도움말
    11. 신호에 대한 서버 응답
    12. 서버 셧다운 프로세스
    2. MySQL Server 로그
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

5.1.8.1 플러그인 설치 및 제거

서버 플러그인을 사용하기 전에 서버 플러그인을 서버에로드해야합니다. MySQL에서 사용자는 서버가 시작되거나 실행시 플러그인을로드 할 수 있습니다. 또한로드 된 플러그인의 활성화를 시작할 때 제어하거나 실행할 때 플러그인을 언로드 할 수 있습니다.

  • 플러그인 설치

  • 플러그인 활성화 제어

  • 플러그인 제거

플러그인 설치

서버 플러그인을 사용하기 전에 서버 플러그인이 서버에 인식되어 있어야합니다. 여기에 설명 된대로 플러그인은 여러 가지 방법으로 인식 할 수 있습니다. 다음의 설명에서 plugin_name 는 innodb 이나 csv 등의 플러그인 이름을 나타냅니다.

내장 플러그인 :

서버에 포함 된 플러그인은 서버에서 자동으로 인식됩니다. 일반적으로 서버 플러그인을 시작할 때 사용되지만 -- plugin_name 옵션에서이를 변경할 수 있습니다.

mysql.plugin 테이블에 등록 된 플러그인 :

mysql.plugin 테이블은 플러그인 레지스트리의 역할을 담당하고 있습니다. 서버는 일반적으로 테이블에 나열되어있는 각 플러그인을 시작할 때 사용하지만 특정 플러그인을 활성화할지 여부는 -- plugin_name 옵션에서 변경할 수 있습니다. 서버가 --skip-grant-tables 옵션으로 시작되면 서버는이 테이블을 참조하지 않고 여기에 나열된 플러그인을로드하지 않습니다.

명령 행 옵션에 이름을 지정된 플러그인 :

플러그인 라이브러리 파일에 존재하는 플러그인은 --plugin-load 옵션을 사용하면 서버 시작시로드 할 수 있습니다. 일반적으로 서버 플러그인을 시작할 때 사용되지만 -- plugin_name 옵션에서이를 변경할 수 있습니다.

옵션 값은 세미콜론으로 구분 된 name = plugin_library 쌍의 목록입니다. 각각의 name 플러그인의 이름에서 plugin_library 플러그인 코드가 포함 된 공유 라이브러리의 이름입니다. 플러그인 이름을 전에없이 플러그인 라이브러리를 지정했을 경우, 서버는 라이브러리에있는 모든 플러그인을로드합니다. 각 라이브러리 파일은 plugin_dir 시스템 변수에 의해 지정된 디렉토리에 저장되어 있어야합니다.

이 옵션은 mysql.plugin 테이블에 플러그인을 등록하지 않습니다. 후속 다시는 --plugin-load 가 다시 지정된 경우에만 서버 플러그인을 다시로드합니다. 즉,이 옵션은 1 번 서버 시작 만 지속 한 번의 설치에 영향을줍니다.

--plugin-load 는 (서버가 mysql.plugin 테이블을 무시하도록) --skip-grant-tables 가 지정되어있는 경우에도 플러그인로드를 가능하게합니다. --plugin-load 또한 플러그인이 실행시에로드 할 수없는 구성에서 플러그인을 시작할 때로드 할 수 있도록합니다.

--plugin-load-add 옵션은 --plugin-load 옵션을 보완합니다. --plugin-load-add 는 시작시로드되는 플러그인 세트에 하나 이상의 플러그인을 추가합니다. 인수의 형식은 --plugin-load 와 같습니다. --plugin-load-add 를 사용하면 대량의 플러그인 세트를 길고 부피가 큰 단일 --plugin-load 인수로 지정하는 것을 방지 할 수 있습니다. --plugin-load-add 는 --plugin-load 없이 사용할 수 있지만, --plugin-load 는로드 플러그인 세트를 재설정하기 위해 --plugin-load 앞에있는 모든 --plugin-load-add 인스턴스는 비활성화됩니다. 즉, 다음의 옵션의 경우,

 --plugin-load = x --plugin-load-add = y

위는 다음의 옵션과 동일합니다.

 --plugin-load = "x; y"

다만, 다음의 옵션의 경우,

 --plugin-load-add = y --plugin-load = x

위는 다음의 옵션과 동일합니다.

 --plugin-load = x

INSTALL PLUGIN 문에 설치되는 플러그인 :

플러그인 라이브러리 파일에 존재하는 플러그인은 INSTALL PLUGIN 문에서 런타임에로드 할 수 있습니다. 이 문은 또한 플러그인을 mysql.plugin 테이블에 등록 한 후 다시 시작하여 서버에서로드합니다. 따라서 INSTALL PLUGIN 에는 mysql.plugin 테이블에 대한 INSERT 권한이 필요합니다.

플러그인이 --plugin-load 옵션과 mysql.plugin 테이블을 모두 사용하여 지정된 경우 서버는 시작되지만 다음과 같은 메시지가 오류 로그에 기록됩니다.

 100310 19:15:44 [ERROR] Function ' plugin_name 'already exists
 100310 19:15:44 [Warning] Could not load plugin named ' plugin_name '
 with soname ' plugin_object_file '.

예 : --plugin-load 옵션은 서버 시작시 플러그인을 설치합니다. myplugin 라는 플러그인을 somepluglib.so 라는 플러그인 라이브러리 파일에 설치하려면 my.cnf 파일에서 다음 줄을 사용합니다.

 [mysqld]
 plugin-load = myplugin = somepluglib.so

이 경우 플러그인은 mysql.plugin 에 등록되지 않습니다. --plugin-load 옵션없이 서버를 다시 시작하면 플러그인은 시작할 때로드되지 않습니다.

한편, INSTALL PLUGIN 명령문은 서버가 시작할 때 라이브러리 파일에서 플러그인 코드를로드합니다.

 mysql> INSTALL PLUGIN myplugin SONAME 'somepluglib.so';

또한 INSTALL PLUGIN 는 "영구"플러그인 등록을 실행합니다. 서버 플러그인을 mysql.plugin 테이블에 나열하면 다음 서버를 다시 시작하면 플러그인이로드됩니다.

많은 플러그인은 서버를 시작할 때 또는 런타임 중 하나를로드 할 수 있습니다. 그러나 서버 시작시 플러그인이로드 및 초기화되도록 설계되어 있으면 INSTALL PLUGIN 대신 --plugin-load 를 사용하십시오.

플러그인이로드되어있을 때, 플러그인에 대한 정보는 INFORMATION_SCHEMA.PLUGINS 테이블과 SHOW PLUGINS 문 등의 여러 소스에서 실행할 때 사용할 수 있습니다. 자세한 내용은 섹션 5.1.8.2 "서버 플러그인 정보 얻기" 를 참조하십시오.

플러그인 활성화 제어

서버가 시작할 때 플러그인을 인식하고있는 경우 (예를 들어, 플러그인이 --plugin-load 옵션을 사용하여 지정된 있거나 mysql.plugin 테이블에 등록되어 있거나하는 경우) 서버는 기본적으로 플러그인을로드하고 활성화합니다. 플러그인 후에 -- plugin_name [= value ] 부팅 옵션을 사용하면이 플러그인의 활성화를 제어 할 수 있습니다. 다음의 설명에서 plugin_name 는 innodb 이나 csv 등의 플러그인 이름을 나타냅니다. 다른 옵션과 마찬가지로 옵션 이름의 대시와 밑줄은 교환 가능합니다. 예를 들어, --my_plugin=ON 과 --my-plugin=ON 은 동일합니다.

  • -- plugin_name =OFF

    플러그인을 사용하지 않도록 서버에 지시합니다.

  • -- plugin_name [=ON]

    플러그인을 사용하도록 서버에 지시합니다. (값없이 옵션을 -- plugin_name 로 지정해도 효과는 동일합니다.) 플러그인 초기화에 실패하면 서버는 플러그인을 비활성화하고 실행합니다.

  • -- plugin_name =FORCE

    플러그인을 사용하도록 서버에 지시하지만 플러그인 초기화가 실패하면 서버가 시작되지 않습니다. 즉,이 옵션은 플러그인을 사용하여 서버를 실행하거나 아무것도 가지 중 하나를 강제합니다.

  • -- plugin_name =FORCE_PLUS_PERMANENT

    FORCE 와 비슷하지만, 또한 플러그인 실행시 언로드되지 않도록합니다. 사용자가 UNINSTALL PLUGIN 를 사용하여이 작업을 수행하려고하면 오류가 발생합니다.

OFF , ON , FORCE 및 FORCE_PLUS_PERMANENT 값은 대소 문자를 구별하지 않습니다.

플러그인의 활성화 상태는 INFORMATION_SCHEMA.PLUGINS 테이블 LOAD_OPTION 컬럼에 표시됩니다.

만일 CSV , BLACKHOLE 및 ARCHIVE 가 플러그 내장 스토리지 엔진에서 서버가 시작할 때 이것들을로드하도록 다음 조건이 주어지고 있다고합니다. 즉, CSV 의 초기화에 실패해도 서버가 실행이 허용되지만, BLACKHOLE 의 초기화에 성공하는 것이 필요하고, ARCHIVE 가 비활성화되어 있어야한다는 조건입니다. 이를 충족하기 위해서는 옵션 파일에서 다음 줄을 사용합니다.

 [mysqld]
 csv = ON
 blackhole = FORCE
 archive = OFF

--enable- plugin_name 옵션 형식 -- plugin_name =ON 의 동의어로 지원됩니다. --disable- plugin_name 및 --skip- plugin_name 옵션 형식 -- plugin_name =OFF 의 동의어로 지원됩니다.

플러그인이 OFF 에서 명시 적으로 비활성화되거나 ON 으로 활성화되었지만 초기화에 실패했기 때문에 암묵적으로 비활성화되는 경우, 플러그인을 필요로하는 서버 작업에 대한 변경됩니다. 예를 들어, 플러그인이 스토리지 엔진을 구현하는 경우, 그 스토리지 엔진의 기존 테이블 액세스 할 수 없습니다 그 스토리지 엔진에 새 테이블을 만들려고하면 대신 오류를 발생시키는 NO_ENGINE_SUBSTITUTION SQL 모드가 활성화 되어 있지 않은 한, 기본 스토리지 엔진을 사용하는 테이블이 생성됩니다.

플러그인 비활성화는 다른 옵션의 조정이 걸릴 수도 있습니다. 예를 들어, --skip-innodb 를 사용하여 서버를 시작하여 InnoDB 를 비활성화 한 경우 다른 innodb_ xxx 옵션을 시작 명령에서 생략 할 수 필요할 수 있습니다. 또한 InnoDB 는 기본 스토리지 엔진이기 때문에 사용 가능한 다른 스토리지 엔진을 --default_storage_engine 으로 지정하지 않으면 시작하지 않습니다. MySQL 5.6.3 이후에서는 --default_tmp_storage_engine 도 설정해야합니다.

플러그인 제거

서버에 인식되는 플러그인은 UNINSTALL PLUGIN 문 실행시 제거하면 비활성화 할 수 있습니다. 이 문은 플러그인을 언로드 플러그인이 mysql.plugin 테이블에 등록되어있는 경우는 거기에서 제거합니다. 따라서 UNINSTALL PLUGIN 문은 mysql.plugin 테이블에 DELETE 권한이 필요합니다. 플러그인이 테이블에 등록되어 있지 않은 경우, 서버는 이후에 다시 시작 플러그인을 자동으로로드하지 않습니다.

UNINSTALL PLUGIN 플러그인이 INSTALL PLUGIN 또는 --plugin-load 중로드되었는지에 관계없이 플러그인을 언로드 할 수 있습니다.

UNINSTALL PLUGIN 에는 다음과 같은 예외가 적용됩니다.

  • 서버에 내장 된 플러그인을 언로드 할 수 없습니다. 이들은 INFORMATION_SCHEMA.PLUGINS 또는 SHOW PLUGINS 에서 출력 라이브러리 이름이 NULL 의 플러그인으로 확인할 수 있습니다.

  • 실행시 플러그인을 언로드하지 않도록하는 -- plugin_name =FORCE_PLUS_PERMANENT 을 사용하면 서버가 시작된 원하는 플러그인을 언로드 할 수 없습니다. 이들은 INFORMATION_SCHEMA.PLUGINS 테이블 LOAD_OPTION 컬럼에서 확인할 수 있습니다.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved