Loading...
MySQL 9.5 Reference Manual 9.5의 7.6.1 Installing and Uninstalling Loadable Functions의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이름에서 알 수 있듯이, loadable function은 사용되기 전에 서버에 로드되어야 합니다. MySQL은 서버 시작 시 자동 함수 로딩과 이후의 수동 로딩을 지원합니다.
loadable function이 로드되어 있는 동안, 이에 대한 정보는 Section 7.7.2, “Obtaining Information About Loadable Functions”에 설명된 대로 확인할 수 있습니다.
loadable function을 수동으로 로드하려면 CREATE FUNCTION 구문을 사용합니다. 예를 들면 다음과 같습니다:
1CREATE FUNCTION metaphon 2 RETURNS STRING 3 SONAME 'udf_example.so';
파일 기본 이름은 사용하는 플랫폼에 따라 달라집니다. 일반적인 접미사는 유닉스 및 유닉스 계열 시스템에서는 .so, Windows에서는 .dll입니다.
CREATE FUNCTION은 다음과 같은 효과를 가집니다:
함수를 서버에 로드하여 즉시 사용 가능하게 합니다.
함수를 mysql.func 시스템 테이블에 등록하여 서버 재시작 후에도 지속되도록 합니다. 이러한 이유로, CREATE FUNCTION에는 mysql 시스템 데이터베이스에 대한 INSERT 권한이 필요합니다.
Performance Schema의 user_defined_functions 테이블에 함수를 추가하여 설치된 loadable function에 대한 런타임 정보를 제공합니다. See Section 7.7.2, “Obtaining Information About Loadable Functions”.
loadable function의 자동 로딩은 일반적인 서버 시작 시퀀스 동안 발생합니다:
mysql.func 테이블에 등록된 함수가 설치됩니다.
시작 시 설치되는 컴포넌트 또는 플러그인은 연관된 함수를 자동으로 설치할 수 있습니다.
자동 함수 설치는 해당 함수를 Performance Schema의 user_defined_functions 테이블에 추가하여 설치된 함수에 대한 런타임 정보를 제공하게 합니다.
서버가 --skip-grant-tables 옵션과 함께 시작되면, mysql.func 테이블에 등록된 함수는 로드되지 않으며 사용할 수 없습니다. 이는 컴포넌트나 플러그인에 의해 자동으로 설치되는 함수에는 적용되지 않습니다.
loadable function을 제거하려면 DROP FUNCTION 구문을 사용합니다. 예를 들면 다음과 같습니다:
1DROP FUNCTION metaphon;
DROP FUNCTION은 다음과 같은 효과를 가집니다:
함수를 언로드하여 사용할 수 없게 만듭니다.
mysql.func 시스템 테이블에서 함수를 제거합니다. 이러한 이유로, DROP FUNCTION에는 mysql 시스템 데이터베이스에 대한 DELETE 권한이 필요합니다. 더 이상 mysql.func 테이블에 함수가 등록되어 있지 않으므로, 서버는 이후 재시작 시 해당 함수를 로드하지 않습니다.
Performance Schema의 user_defined_functions 테이블에서 함수를 제거하여 설치된 loadable function에 대한 런타임 정보를 없앱니다.
DROP FUNCTION은 컴포넌트나 플러그인을 사용하지 않고 CREATE FUNCTION을 사용하여 설치된 것이 아니라, 컴포넌트 또는 플러그인에 의해 자동으로 설치된 loadable function을 drop하는 데 사용할 수 없습니다. 이러한 함수는 그것을 설치한 컴포넌트나 플러그인이 uninstall될 때 자동으로 drop됩니다.
loadable function과 연관된 공유 라이브러리를 다시 설치하거나 업그레이드하려면, DROP FUNCTION 구문을 실행하고, 공유 라이브러리를 업그레이드한 다음, CREATE FUNCTION 구문을 실행합니다. 공유 라이브러리를 먼저 업그레이드한 다음 DROP FUNCTION을 사용하면, 서버가 예기치 않게 종료될 수 있습니다.
7.6 MySQL Server Loadable Functions
7.6.2 Obtaining Information About Loadable Functions