24.2.1 플러그인 API의 특징
서버 플러그인 API는 다음과 같은 특징이 있습니다.
모든 플러그인에 몇 가지 공통점이 있습니다.
각 플러그인은 SQL 문에서 참조 가능한 이름 외에 다른 정보를 제공하는 작성자 및 설명 등의 메타 데이터가 있습니다. 이 정보는
INFORMATION_SCHEMA.PLUGINS
테이블 또는SHOW PLUGINS
문을 사용하여 조사 할 수 있습니다.플러그인 프레임 워크는 다른 종류의 플러그인을 지원하기 위해 확장 가능합니다.
플러그인 API의 일부 특성은 모든 유형의 플러그인에 공통적으로 있습니다 만, API에서는 유형별 인터페이스 요소도 사용할 수 있기 때문에 다른 유형의 플러그인을 만들 수 있습니다. 있는 용도를 가진 플러그인은 자체의 요구 사항에 가장 적합한 인터페이스를 가지고 있기 때문에 다른 플러그인 타입의 요구 사항에 적합하지 않을 수 있습니다.
스토리지 엔진, 전체 파서
INFORMATION_SCHEMA
테이블 등 다양한 유형의 플러그인 인터페이스가 존재합니다. 다른 인터페이스도 추가 할 수 있습니다.플러그인은 정보를 사용자에게 제공합니다.
플러그인은
SHOW VARIABLES
및SHOW STATUS
명령문을 사용하여 얻을 수있는 시스템 변수 및 상태 변수를 구현할 수 있습니다.플러그인 API에는 버전 정보가 포함되어 있습니다.
플러그인 API에 포함되어있는 정보에 의해 플러그인 라이브러리와 그 안에 포함 된 각 플러그인 라이브러리 빌드에 사용 된 API 버전을 자각 수 있습니다. API가 그 변경되면 버전 번호가 변경되지만 서버는 대상이되는 플러그인 라이브러리의 버전 정보를 검사하여 라이브러리의 플러그인을 지원하는지 여부를 확인할 수 있습니다.
버전 번호에는 두 가지 유형이 있습니다. 첫 번째는 전반적인 플러그인 프레임 워크 자체의 버전 번호입니다. 각 플러그인 라이브러리는이 종류의 버전 번호가 포함되어 있습니다. 두 번째 유형의 버전은 각 플러그인에 적용됩니다. 특정 유형의 각 플러그인은 그 인터페이스 버전이 있으므로 라이브러리의 각 플러그인은 유형별 버전 번호가 있습니다. 예를 들어, 전체 파서 플러그 인을 포함하는 라이브러리는 일반적인 플러그인 API 버전 번호가 그 플러그인은 전체 플러그인 인터페이스의 특정 버전 번호가 있습니다.
플러그인 API는 보안 제한 조건을 구현합니다.
플러그인 라이브러리는 특정 전용 디렉토리에 설치해야 디렉터리 위치는 서버에 의해 제어되는 런타임에 변경할 수 없습니다. 또한 라이브러리는 그것이 플러그인 라이브러리임을 식별하는 특정 심볼이 포함되어 있어야합니다. 서버는 플러그인으로 빌드되지 않은 것을 플러그인으로로드하지 않습니다.
플러그인은 서버 서비스에 액세스 할 수 있습니다.
서비스 인터페이스는 플러그인이 일반 함수 호출을 사용하여 액세스 할 수있는 서버 기능을 제공합니다. 자세한 내용은 섹션 24.2.5 "플러그인을위한 MySQL 서비스" 를 참조하십시오.
서버 플러그인 API는을 대신 이전 사용자 정의 함수 (UDF) API와 몇 가지 점에서 비슷하지만 이전 인터페이스보다 다양한 이점이 있습니다. 예를 들어, UDF에는 버전 정보가 없습니다. 또한 새로운 플러그인 인터페이스는 이전 UDF 인터페이스에서의 보안 문제가 없습니다. 플러그인이 아닌 UDF를 작성하기위한 이전의 인터페이스는 시스템의 동적 링커에 의해 검색된 모든 디렉토리에서 라이브러리를로드 할 수있어 UDF 라이브러리를 식별 기호는 비교적 특이성이 낮은 것이 었습니다.
클라이언트 플러그인 API는 유사한 아키텍처의 특징이 있지만, 클라이언트 플러그인은 서버 플러그인처럼 서버에 직접 액세스하지 않습니다.