命令语法
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中的版本进行核对。 - 否则,安装失败,您必须指定一个版本。
扩展命名约定
VillageSQL 在不同的上下文中采用不同的命名约定:- SQL 命令: 使用下划线:
INSTALL EXTENSION vsql_uuid - 仓库名称: 使用连字符:
github.com/villagesql/vsql-uuid - 文件名: 使用下划线:
vsql_uuid.veb - manifest.json: 使用下划线以匹配 SQL:
"name": "vsql_uuid"
所需权限
INSTALL EXTENSION、UNINSTALL EXTENSION 和 ALTER EXTENSION 受
EXTENSION_ADMIN 动态权限保护。这些语句会将本机扩展代码加载到正在运行的服务器中,
因此它们需要管理权限,非特权账户无法使用。
EXTENSION_ADMIN 是在全局范围(ON *.*)授予的动态权限:
SUPER 也被接受作为后备权限,因此已持有 SUPER 的账户
无需单独授权即可运行这些语句。
由 --initialize 或 --initialize-insecure 创建的数据目录会直接将
EXTENSION_ADMIN 授予 root@localhost,因此新服务器无需手动授权。
就地升级现有数据目录时,每个持有 SUPER 的用户账户都会被授予 EXTENSION_ADMIN —
但仅当没有任何账户已持有该权限时才会如此,因此已升级过一次的服务器
在以后的升级中不会再次回填。保留的 mysql.* 系统账户被排除在外。
两种权限都不具备的账户会在任何扩展工作开始之前被拒绝:
EXTENSION_ADMIN/SUPER,因此现有会话在撤销后
不会保留该权限 — 它的下一条语句就会失败,并报出上面显示的相同
ERROR 1227 (42000)。
先决条件
- 正在运行的 VillageSQL Server 实例
- 管理员权限(root 或同等权限)
安装内置扩展
与 VillageSQL 一起提供的内置扩展已位于veb_dir 中。只需启用它们:
验证安装
测试功能
安装外部扩展
对于单独下载或构建的扩展:在安装外部扩展之前,您的服务器必须配置
veb_dir。请参阅 配置 veb_dir。1. 复制 .veb 文件
找到服务器的扩展目录,然后将.veb 文件复制到其中:
2. 安装扩展
VERSION 子句:
{name}-{version}.veb)— 它与前面显示的
Version mismatch in '<file>' 错误属于不同的代码路径,后者在
带版本号的文件本身存在时触发。
3. 验证安装
故障排除
有关更多故障排除信息,请参阅 管理扩展。
后续步骤
管理扩展
监控和排除已安装扩展的故障
可用扩展
浏览您可以安装的扩展
创建扩展
构建您自己的扩展

