centos 安装 postgresql 数据库

* 安装必要的工具

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【16版本的位置是在:/etc/postgresql/16/main/pg_hba.conf】

* 找到类似如下行(针对 IPv4 和 IPv6 的 local 和 host 认证):

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident

将 ident改为 md5 或 scram-sha-256,并添加允许某个 IP 或所有 IP 访问的规则,例如:

# 允许所有IP通过密码md5方式访问(生产环境慎用!)
host    all             all             0.0.0.0/0               md5

修改 postgresql.conf文件,监听所有 IP 或指定 IP

vi /var/lib/pgsql/12/data/postgresql.conf【16版本的位置是在:/etc/postgresql/16/main/postgresql.conf】

找到如下代码:

#listen_addresses = 'localhost'
修改成:
listen_addresses = '*'

* 重启 PostgreSQL 服务

systemctl restart postgresql-12【16版本的命令是:systemctl restart postgresql】

* == 设置 PostgreSQL 远程可以访问的用户与数据库 ==

PostgreSQL 安装后会创建一个名为 postgres的系统用户,该用户也是数据库的超级用户,无需密码,直接登录

sudo -i -u postgres psql

创建新数据库和用户

-- 创建一个新数据库
CREATE DATABASE 数据库名;

-- 创建一个新用户并设置密码
CREATE USER 用户名 WITH ENCRYPTED PASSWORD '密码';

-- 授予该用户对 mydb 数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

@ 注意:如果 ident 改成了 scram-sha-256 ,则需要修改密码加密方式,先查看加密方式:

SHOW password_encryption;  //如果是 scram-sha-256 则不需要改,如果 md5,需要修改加密方式

image

查看刚才新建的用户的密码的加密方式(如果是 md5xxx 开头的则需要改,如果 SCRAM-SHA-256xxxx 开头的则不需要改)

SELECT rolname, rolpassword FROM pg_authid WHERE rolname = '用户名';

image

修改加密方式:

SET password_encryption = 'scram-sha-256';

重新用新的加密方式设置密码:

ALTER USER 用户名 WITH PASSWORD '新密码';  //这里新密码需要单引号括起来,注意,密码方式不对,等下远程工具会一直提示授权不正确,无法登录

退出 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
posted @ 2025-09-14 11:36  雪化山河  阅读(39)  评论(0)    收藏  举报