Skip to main content
VillageSQL 확장을 설치하여 데이터베이스에 사용자 정의 유형, 함수 및 기능을 추가합니다.

명령어 구문

VERSION이 제공되면 서버는 {name}-{version}.veb를 열고 매니페스트와 버전을 비교하며, 다를 경우 중단합니다:
이 절을 생략하면 {name}.veb를 설치하거나, 버전이 지정된 VEB만 존재하는 경우 유일하게 존재하는 {name}-{version}.veb를 설치합니다. 버전 선택을 참조하세요.
확장은 컴파일된 라이브러리와 메타데이터를 포함한 .veb(VillageSQL 확장 번들) 파일로 배포됩니다.

버전 선택

veb_dir의 VEB 파일은 {name}.veb(버전 미지정) 또는 {name}-{version}.veb(버전 지정) 중 하나로 이름을 지정할 수 있습니다. 특정 버전의 VEB를 설치하려면 VERSION 절을 추가하세요:
VERSION을 사용하면 서버는 vsql_uuid-0.2.0.veb를 열고 해당 manifest.json의 버전이 0.2.0과 일치하는지 확인합니다. VERSION이 없으면 서버는 다음과 같이 파일을 결정합니다:
  • {name}.veb가 존재하면 이를 설치하며, 버전은 해당 manifest.json에서 읽습니다.
  • 그렇지 않고 정확히 하나의 {name}-{version}.veb가 존재하면 이를 설치하며, 파일 이름의 버전은 해당 manifest.json과 대조하여 검증됩니다.
  • 그렇지 않으면 설치가 실패하며 버전을 지정해야 합니다.
버전이 지정된 여러 VEB가 존재하고 버전 미지정 VEB가 없으면 INSTALL EXTENSIONMultiple versions of extension '<name>' found in '<dir>'; specify a version with INSTALL EXTENSION <name> VERSION 'x.y.z' 오류와 함께 실패합니다. 명시적인 VERSION 절을 사용하여 다시 실행하세요.

확장 명명 규칙

VillageSQL은 다양한 맥락에서 다른 명명 규칙을 사용합니다:
  • SQL 명령어: 밑줄 사용: INSTALL EXTENSION vsql_uuid
  • 저장소 이름: 하이픈 사용: github.com/villagesql/vsql-uuid
  • 파일 이름: 밑줄 사용: vsql_uuid.veb
  • manifest.json: SQL과 일치하도록 밑줄 사용: "name": "vsql_uuid"
예시:

필수 권한

INSTALL EXTENSION, UNINSTALL EXTENSIONALTER EXTENSIONEXTENSION_ADMIN 동적 권한으로 보호됩니다. 이 문장들은 네이티브 확장 코드를 실행 중인 서버에 로드하므로 관리 권한이 필요하며, 권한이 없는 계정에서는 사용할 수 없습니다. EXTENSION_ADMIN은 전역 범위(ON *.*)에서 부여되는 동적 권한입니다:
이전 버전과의 호환성을 위해 SUPER도 대체 권한으로 허용되므로, 이미 SUPER를 보유한 계정은 별도의 부여 없이 이 문장들을 실행할 수 있습니다. --initialize 또는 --initialize-insecure로 생성된 데이터 디렉토리는 root@localhostEXTENSION_ADMIN을 직접 부여하므로, 새 서버에는 수동 부여가 필요하지 않습니다. 기존 데이터 디렉토리를 제자리에서 업그레이드하면 SUPER를 보유한 모든 사용자 계정에 EXTENSION_ADMIN이 부여됩니다. 단, 이미 이 권한을 보유한 계정이 하나도 없는 경우에만 부여되므로, 한 번 업그레이드된 서버는 이후 업그레이드에서 다시 채워지지 않습니다. 예약된 mysql.* 시스템 계정은 제외됩니다. 두 권한 중 어느 것도 보유하지 않은 계정은 확장 작업이 시작되기 전에 거부됩니다:
권한 취소도 같은 방식으로 수행합니다:
취소는 다음 연결이 아니라 즉시 적용됩니다. 서버는 모든 확장 DDL 문에서 계정의 현재 권한에 대해 EXTENSION_ADMIN/SUPER를 확인하므로, 기존 세션은 취소 후에도 권한을 유지하지 않습니다. 바로 다음 문장에서 위에 표시된 것과 동일한 ERROR 1227 (42000)으로 실패합니다.

사전 요구 사항

  • 실행 중인 VillageSQL 서버 인스턴스
  • 관리자 접근 권한(루트 또는 동등한 계정)

내장 확장 설치

VillageSQL에 포함된 내장 확장은 이미 veb_dir에 있습니다. 간단히 활성화만 하면 됩니다:

설치 확인

출력:

기능 테스트

외부 확장 설치

별도로 다운로드하거나 빌드한 확장의 경우:
외부 확장을 설치하기 전에 서버에서 veb_dir이 구성되어 있어야 합니다. veb_dir 구성하기를 참조하세요.

1. .veb 파일 복사

서버의 확장 디렉토리를 찾아 .veb 파일을 해당 디렉토리로 복사합니다:

2. 확장 설치

CI 또는 스크립트 기반 롤아웃에서 유용하도록, 예상 버전을 고정하려면 VERSION 절을 포함하세요:
매니페스트가 다른 버전을 보고하면 설치가 실패하고 아무것도 등록되지 않습니다:
이는 대체 파일 경로({name}-{version}.veb가 존재하지 않는 경우)이며, 앞서 표시된 Version mismatch in '<file>' 오류와는 다른 코드 경로입니다. 후자는 버전이 지정된 파일 자체가 존재할 때 발생합니다.

3. 설치 확인

문제 해결

추가 문제 해결은 확장 관리를 참조하세요.

다음 단계

확장 관리

설치된 확장 모니터링 및 문제 해결

사용 가능한 확장

설치 가능한 확장 탐색

확장 만들기

자체 확장 빌드