我有一篇博文是讲在线状态下如何安装postgresql指定版本,以及具体如何配置https://blog.csdn.net/dap769815768/article/details/86474378,但是那种方式有一个坑,就是到了9.5版本之后,尝试使用yum安装扩展postgresql-contrib,由于安装路径和postgresql的默认配置路径有出入,导致使用CREATE EXTENSION IF NOT EXISTS "uuid-ossp"指令时一直报错:
无法打开扩展控制文件 "/usr/pgsql-10/share/extension/uuid-ossp.control": 没有那个文件或目录
由于我暂时还不知道怎么解决这个问题,因此,在线安装的方法安装的数据库无法正常使用pg的扩展,这里我讲一个使用docker镜像安装数据库的方法:
1.centos安装docker,如果网络接通,安装很简单,如果不通,参考我另一篇博文
yum install -y docker
2.启动docker
systemctl start docker
3.查询可用的docker镜像:
docker search postgres
4.我们选择docker.io/postgres这个星级最高的下载:
docker pull docker.io/postgres(这里如果不加版本号,就默认下载最新的,如果加了版本号docker pull docker.io/postgres:10,则是下载指定版本)
5.查看本机镜像:
docker image ls
下面的TAG为latest的是没有加版本号pull下来的镜像
6.启动容器,这里我们启动版本号为10的镜像,使用它的IMAGE ID来启动:
run代表启动容器
--name postgresql10表示将启动的容器命名为postgresql10
POSTGRES_PASSWORD=sa 表示给pg默认的用户postgres的密码设置为sa
5432:5432表示将机器的端口和容器的端口作映射
b62e41d8ddcc表示启动名为b62e41d8ddcc的镜像
如果想该容器随着docker的重启跟着重启的话,请加上--restart=always ,也就是下面这样
docker run --restart=always --name postgresql10 -e POSTGRES_PASSWORD=sa -p 5432:5432 -d b62e41d8ddcc
7.查看容器:
docker ps -a
可以看到我们的容器已经在启动中了。
8.到这里,基本上pg的基础配置部分已经全部搞定了,把系统的防火墙关掉,然后尝试从外面访问启动好的数据库,如果不出意外,应该是成功的:
9.成功后尝试执行命令:CREATE EXTENSION IF NOT EXISTS "uuid-ossp":
表示pg的扩展也没问题