在宝塔的Postgre下 安装插件(扩展)时报错问题

在宝塔的Postgre下 安装插件(扩展)时报错:

CREATE EXTENSION pg_trgm;
CREATE EXTENSION postgres_fdw;
CREATE EXTENSION mysql_fdw;
CREATE EXTENSION oracle_fdw;
CREATE EXTENSION tds_fdw;

yum repository 里添加 PostgreSQL库

接下来,我们将PostgreSQL存储库添加到CentOS 7/RHEL 7 Linux系统中

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

错误提示1:

ERROR: could not open extension control file “/www/server/pgsql/share/extension/pg_trgm.control”: 没有那个文件或目录
ERROR: could not open extension control file “/www/server/pgsql/share/extension/postgres_fdw.control”: 没有那个文件或目录

解决方法1:

Step1. 从官方文件里复制过来,先安装 postgre-contrib,

Step2. 然后相关文件复制到宝塔的postgre安装目录里
/share/extension/,/lib/ 把两个文件里的拷贝过来

yum install -y postgresql14-contrib
awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/share/extension/* /www/server/pgsql/share/extension"; print "n" |cmd; }'
awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/lib/* /www/server/pgsql/lib/"; print "n" |cmd; }'

错误提示2:

ERROR: permission denied to create extension “postgres_fdw”
HINT: Must be superuser to create this extension.

或者提示:
FATAL: terminating connection due to administrator command

解决方法2:

客户端认证里临时加个所有权限, 处理完后注释掉
host all all 0.0.0.0/0 trust

解决方法2: 在本地进入数据库,安装插件

su - postgres
psql
create extension postgres_fdw;

错误提示3:

ERROR: could not access file “$libdir/postgres_fdw”: 没有那个文件或目录

解决方法3:

cp -ri /usr/pgsql-14/lib/* /www/server/pgsql/lib/
awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/lib/* /www/server/pgsql/lib/"; print "n" |cmd; }'

Postgres 的多个实例(多个版本或同一版本的多个实例)?

删除安装包后宝塔上重启服务,还是不好使的话重新安装

sudo yum remove postgresql*

建议卸载,重新安装

宝塔下安装mysql_fdw方法

yum install mysql_fdw_14
awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/share/extension/* /www/server/pgsql/share/extension"; print "n" |cmd; }'
awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/lib/* /www/server/pgsql/lib/"; print "n" |cmd; }'

原文链接:https://centos.pkgs.org/7/postgresql-14-x86_64/mysql_fdw_14-2.6.1-2.rhel7.x86_64.rpm.html

然后重启~

宝塔下安装mysql_fdw遇到冲突

安装mysql_fdw_14的时候显示它依赖mariadb-devel
安装mariadb-devel的时候又与现有的mysql有冲突, 现有的数据库数据量也很多不能卸载后重装.
只好用Docker里安装完mysql_fdw_14后把相应地文件复制过来
记得服务器系统版本和docker的版本要一致.

  1. 创建Docker, 然后建立映射目录

在这里我是 Docker的/www文件夹和服务器的/www/docker_centos文件夹建立映射的

  1. Docker里 添加Postgre镜像源
[root@docker]$ yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  1. 然后安装 mysql_fdw_14
[root@docker]$ yum install mysql_fdw_14

  1. 文件复制过来
[root@docker]$  mkdir /www/extension
[root@docker]$  mkdir /www/lib
[root@docker]$  awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/share/extension/* /www/extension"; print "n" |cmd; }'
[root@docker]$  awk 'BEGIN { cmd="cp -ri /usr/pgsql-14/lib/* /www/lib/"; print "n" |cmd; }'
  1. 在服务器上复制文件
[postgre@server]$  awk 'BEGIN { cmd="cp -ri /www/docker_centos/extension/* /www/server/pgsql/share/extension"; print "n" |cmd; }'
[postgre@server]$  awk 'BEGIN { cmd="cp -ri /www/docker_centos/lib/* /www/server/pgsql/lib/"; print "n" |cmd; }'

重启postgre搞定

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值