选择对应的版本然后在容器中的centos7中执行下面命令
但是启动容器的时候需要注意
- 开启端口映射
- 开启特权模式
- 启动init进程
docker run -itd --name centos-postgresql -p 5433:5432 --privileged=true centos:centos7 /usr/sbin/init
启动然后进入后先安装ibzstd.so.1依赖
yum install epel-release.noarch -y
yum install libzstd.x86_64 -y
安装完依赖后就可以按下面的顺序执行命令
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql15-server
/usr/pgsql-15/bin/postgresql-15-setup initdb
systemctl enable postgresql-15
systemctl start postgresql-15
执行完成后就可以切换用户登陆postgresql了
#切换用户
su - postgres
#登陆数据库
psql
接下来配置数据库访问控制文件,主要是配置postgresql.conf 和 pg_hba.conf 个。
- postgresql.conf 针对实例的配置
- pg_hba.conf 针对数据库访问的控制
切换到/var/lib/pgsql/15/data目录下
注意:这里/var/lib/pgsql/15/data的15要根据自己安装的版本来确定
配置postgresql.conf
vim postgresql.conf
找到"#port"和"#listener_address"这两个参数,这两个参数是相邻的,将两行行首的"#"删除。
将"listen_addressee='localhost'"改为当前服务器的IP,如果改为
"listen_addressee='*'",将监听整个网络。
默认的监听端口是5432,可以自行指定另外一个端口号。
max_connections是客户端最大的连接数, 缺省值100有点少,特别是业务系统,可以调整成1000或者更高。
配置pg_hba.conf
vim pg_hba.conf
将红框设置为 10.10.100.0/24,意思是10.10.100网段的IP 连接此服务器上的PostgreSQL. 如果想允许所有IP都可以连接此服务器,则可以配置成0.0.0.0/0,但这样是不安全的,可以把trust改为md5,表示需要密码访问,算是提供一个最低级的安全防护。
配置完这俩个文件后就可以重启数据库了
systemctl restart postgresql-15
记得关闭防火墙
systemctl stop firewalld
测试连接