Skip to main content

命令语法

当提供 VERSION 时,服务器会将它与已安装扩展的版本进行比较,如果两者不同,则中止操作。省略此子句以卸载当前安装的任何版本。
在卸载扩展之前,必须删除所有使用扩展中类型的列、存储过程参数和 DECLARE 变量。然后,卸载过程将删除扩展提供的所有函数和类型。

先决条件

  • 对 VillageSQL 的管理员访问权限
  • 没有使用扩展中自定义类型的表
  • 没有使用扩展中自定义类型的参数或 DECLARE 变量的存储过程
  • 如果扩展存储自定义数据,则备份数据

卸载步骤

1. 尝试卸载

运行卸载命令。如果扩展没有依赖项,它将立即成功。如果列依赖于它,则错误消息会准确地标识哪些列:
**如果扩展具有列依赖项,**您将看到如下错误:
删除或修改标识的列,然后重试:
**如果存储过程使用扩展中的自定义类型,**您将看到如下错误:
删除或修改存储过程,以删除带有类型的参数或变量,然后重试:

2. 卸载扩展

为了防止卸载意外版本(在 CI 或滚动升级后很有用),请包含 VERSION 子句:
如果 1.2.0 不是已安装的版本,服务器将返回错误并保留扩展:
这将删除以下内容:
  • ✅ 扩展提供的所有 VDF(函数)
  • ✅ 扩展注册的自定义类型定义
  • ✅ 扩展注册记录
  • ✅ 扩展的自定义列元数据
  • ✅ 扩展的持久系统变量(SET PERSIST),来自 mysqld-auto.cnf
这将不会删除以下内容:
  • .veb 文件将保留在 veb_dir
  • {datadir}/.veb_expansion_cache/ 中的扩展目录将暂时保留
  • ❌ 表数据(您必须首先删除具有自定义类型的表)
服务器重新启动时,{datadir}/.veb_expansion_cache/{extension}/{sha256}/ 中的扩展目录将自动清理。
UNINSTALL EXTENSION 还会删除属于扩展的所有持久系统变量,这些变量来自 mysqld-auto.cnf。如果您之前运行了 SET PERSIST extensionname.varname = value,则该条目将在卸载期间自动删除。持久值不会在服务器关闭期间删除——它们会在重新启动周期中保留,以便扩展可以在下次加载时读取它们。

3. 验证卸载

常见错误

可选:删除 .veb 文件

卸载后,.veb 文件将保留。要完全删除:
.veb 文件可以安全地保留以供将来重新安装。删除它不会影响服务器性能。

重新安装

要重新安装扩展,请再次使用 INSTALL EXTENSION(如果 .veb 文件仍然存在):
有关详细信息,请参阅 安装扩展

后续步骤

安装扩展

如果需要,请添加扩展。

管理扩展

监视和排除扩展故障。

系统参考

查询系统表。