添加 PostgreSQL11 仓库到 Centos7

1
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm -y

查看可安装的软件

1
yum list postgresql*

安装 PostgreSQL11

1
yum install postgresql11 postgresql11-server -y

初始化数据库

1
/usr/pgsql-11/bin/postgresql-11-setup initdb

开机启动

1
systemctl enable postgresql-11

启动

1
systemctl start postgresql-11

查看启动信息

1
systemctl status postgresql-11

启用远程访问

默认配置文件在 /var/lib/pgsql/11/data/postgresql.conf

1
2
3
4
vim /var/lib/pgsql/11/data/postgresql.conf
...bash
listen_addresses = '*' # 默认 listen_addresses = 'localhost'
...

/var/lib/pgsql/11/data/pg_hba.conf 配置基于主机的认证。这个文件控制哪些主机允许连接。要注意默认情况下允许所有本地用户连接任何数据库用户,包括数据库的超级用户
默认会创建 postgres 用户 只能本机登录, 建议不要为这个用户设置密码

切换 到 postgres 用户 创建新用户

1
2
3
4
5
su - postgres
psql -l # 查看数据库
psql # 进入命令模式
\password # 为 postgres 用户设置密码
\q # 退出

其他主机可访问

1
2
3
4
5
vim /var/lib/pgsql/11/data/pg_hba.conf

# 添加如下内容
# IPv4 host connections:
host all all 0.0.0.0/0 md5

启用 unix 域套接字

1
2
3
4
vim /var/lib/pgsql/11/data/postgresql.conf
unix_socket_directories = '/var/run/postgresql, /tmp'
#unix_socket_group = ''
unix_socket_permissions = 0777
1
2
3
vim /var/lib/pgsql/11/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local all all md5

重启数据库

1
systemctl restart postgresql-11

参考
pg_hba.conf文件说明与配置
PostgreSQL (简体中文))
Linux downloads (Red Hat family)