* 安装必要的工具
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
* 移除可能冲突的默认 PostgreSQL 模块(如有)
yum remove -y postgresql*
* 查看 postgresql 版本
yum list postgresql*
* 按 y 一直安装
* 安装 PostgreSQL 12 服务器和核心组件
yum install -y postgresql12 postgresql12-server postgresql12-contrib
* 初始化数据库集群
/usr/pgsql-12/bin/postgresql-12-setup initdb
* 启动 PostgreSQL 服务并设置开机启动
systemctl start postgresql-12 systemctl enable postgresql-12
* 检查服务状态:
systemctl status postgresql-12
* 配置 PostgreSQL 远程访问,修改 pg_hba.conf文件
vi /var/lib/pgsql/12/data/pg_hba.conf
* 找到类似如下行(针对 IPv4 和 IPv6 的 local 和 host 认证):
# IPv4 local connections: host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident
将 ident改为 md5或 scram-sha-256(推荐),并添加允许某个 IP 或所有 IP 访问的规则,例如:
# 允许所有IP通过密码md5方式访问(生产环境慎用!) host all all 0.0.0.0/0 md5# 或者只允许某个网段,比如公司内网 # host all all 192.168.1.0/24 md5
修改 postgresql.conf文件,监听所有 IP 或指定 IP
vi /var/lib/pgsql/12/data/postgresql.conf
找到如下代码:
#listen_addresses = 'localhost' 修改成: listen_addresses = '*'
* 重启 PostgreSQL 服务
systemctl restart postgresql-12
* == 设置 PostgreSQL 用户与数据库 ==
PostgreSQL 安装后会创建一个名为 postgres
的系统用户,该用户也是数据库的超级用户,无需密码,直接登录
sudo -i -u postgres
使用 psql 登录数据库控制台
psql
创建新数据库和用户
-- 创建一个新数据库 CREATE DATABASE 数据库名;-- 创建一个新用户并设置密码 CREATE USER 用户名 WITH ENCRYPTED PASSWORD '密码';-- 授予该用户对 mydb 数据库的所有权限 GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;
退出 psql
\q
退出 postgresql 用户
exit
* 开放防火墙端口:
# 开启 5432 端口 firewall-cmd --zone=public --add-port=5432/tcp --permanent# 刷新端口 firewall-cmd --reload# 查看端口 firewall-cmd --zone=public --list-ports
* 最后:需要安装 其他版本的 PostgreSQL(如 13、14、15),只需将上述命令中的 12替换为对应版本号即可
yum install -y postgresql14 postgresql14-server /usr/pgsql-14/bin/postgresql-14-setup initdb systemctl start postgresql-14
systemctl restart postgresql-12