温馨提示×

PostgreSQL在CentOS中的配置步骤是什么

小樊
49
2025-10-01 01:48:36
栏目: 云计算

1. 更新系统包
在开始安装前,确保系统包是最新的,以避免依赖冲突:

sudo yum update -y 

2. 安装PostgreSQL官方YUM仓库(可选但推荐)
若需安装最新版本的PostgreSQL(如15.x),需先添加官方仓库(以CentOS 7为例,其他版本需调整URL):

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm 

若安装过程中提示缺少libzstd等依赖,可手动下载对应版本的RPM包安装(如CentOS 7需下载libzstd-1.5.5-1.el7.x86_64.rpm)。

3. 安装PostgreSQL服务器及扩展工具
通过YUM安装PostgreSQL服务器(postgresql-server)和常用扩展(postgresql-contrib,包含额外工具如pgbenchpg_dump等):

sudo yum install -y postgresql15-server postgresql15-contrib # 版本号根据需求调整 

4. 初始化数据库集群
使用官方提供的脚本初始化数据库(路径随版本变化,如PostgreSQL 15为/usr/pgsql-15/bin/postgresql-15-setup):

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb # 替换为实际版本 

初始化后,数据库文件默认存放在/var/lib/pgsql/15/data/(CentOS 7)或/var/lib/pgsql/<version>/data/(CentOS 8+)。

5. 启动PostgreSQL服务并设置开机自启
启动服务并配置为系统启动时自动运行:

sudo systemctl start postgresql-15 # 替换为实际版本(如postgresql-14) sudo systemctl enable postgresql-15 

通过systemctl status postgresql-15可查看服务状态。

6. 配置PostgreSQL核心参数

  • 修改postgresql.conf(调整服务行为)
    文件路径通常为/etc/postgresql/15/main/postgresql.conf(CentOS 8+)或/var/lib/pgsql/15/data/postgresql.conf(CentOS 7)。主要修改以下参数:
    listen_addresses = '*' # 允许所有IP连接(远程访问需开启) port = 5432 # 默认端口(可根据需求调整) max_connections = 100 # 最大连接数(根据服务器资源调整) shared_buffers = 256MB # 共享缓冲区大小(建议为系统内存的25%) 
  • 修改pg_hba.conf(配置访问权限)
    文件路径与postgresql.conf同级。添加以下行允许远程连接(本地连接默认允许):
    host all all 0.0.0.0/0 md5 # 允许所有IP通过MD5密码认证访问所有数据库 host all all ::/0 md5 # 允许IPv6连接(可选) 

7. 重启服务应用配置
修改配置文件后,需重启服务使更改生效:

sudo systemctl restart postgresql-15 

8. 强化PostgreSQL安全

  • 设置postgres用户密码
    切换至postgres用户(默认超级用户),使用psql命令修改密码:
    sudo -i -u postgres psql ALTER USER postgres PASSWORD 'your_secure_password'; # 替换为强密码 \q # 退出psql exit # 退出postgres用户 
  • 配置防火墙
    若系统启用firewalld,需开放PostgreSQL端口(默认5432):
    sudo firewall-cmd --permanent --add-service=postgresql # 或指定端口:--add-port=5432/tcp sudo firewall-cmd --reload 

9. 创建数据库和用户(可选但推荐)
为应用创建专用数据库和用户(避免直接使用超级用户):

sudo -u postgres psql CREATE DATABASE myappdb; # 创建数据库 CREATE USER myappuser WITH PASSWORD 'myapppassword'; # 创建用户 GRANT ALL PRIVILEGES ON DATABASE myappdb TO myappuser; # 授权 \q # 退出psql 

10. 测试连接
使用psql客户端验证连接(本地或远程均可):

psql -h localhost -U myappuser -d myappdb # 输入密码后,若出现psql提示符则成功 

若为远程连接,需将客户端IP添加至pg_hba.conf的白名单,并确保防火墙允许该IP访问。

0