华为云云数据库rds通过SQL命令安装和卸载插件_云淘科技
本章节提供基于root用户的PostgreSQL插件管理方案,下列插件无需用户手动创建,其他插件均需要参考本章节内容手动创建。
auto_explain
passwordcheck
pg_profile_pro
pg_sql_history
plpgsql
wal2json
test_decoding
RDS for PostgreSQL插件是数据库级生效,并不是全局生效。因此创建插件时需要在对应的业务库上进行手动创建。
RDS for PostgreSQL 11、RDS for PostgreSQL 12和RDS for PostgreSQL 13的最新小版本,支持以root用户通过社区的方式来创建(create extension)、删除(drop extension)插件。
创建插件
以root用户连接需要创建插件的数据库,执行如下SQL创建插件。
select control_extension(‘create’,’‘, ‘‘);
EXTENSION_NAME为插件名称,请参见支持的插件列表。
SCHEMA为模式名称,指定创建插件的模式位置,不指定该参数时默认为public模式。
示例如下:
创建postgis插件,创建位置为public schema。
-- 指定创建插件schema位置为public select control_extension('create','postgis', 'public'); control_extension ------------------------------ create postgis successfully. (1 row) -- schema参数未指定时,默认schema位置为public select control_extension('create', 'postgis'); control_extension ------------------------------ create postgis successfully. (1 row)
删除插件
以root用户连接需要创建插件的数据库,执行如下SQL删除插件。
select control_extension(‘drop’,’‘, ‘‘);
EXTENSION_NAME为插件名称,请参见支持的插件列表。
SCHEMA为模式名称,在删除插件时参数无意义,可以不指定该参数。
示例如下:
select control_extension('drop','postgis'); control_extension ---------------------------- drop postgis successfully. (1 row)
常见报错
场景一
ERROR: permission denied for function control_extension
解决方法:未使用root用户执行control_extension函数,需更改连接用户为root。
场景二
ERROR: function control_extension(unknown, unknown) is not unique
解决方法:在不指定schema时,可能存在同名函数,导致函数不唯一无法运行,可选择添加schema参数重试。
场景三
ERROR: function control_extension(unknown, unknown) does not exist
解决方法:control_extension函数在postgres库不存在,postgres库作为RDS运维库,禁止创建插件。
父主题: 插件管理
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家