CentOS 7系统上安装PostgreSQL的详细步骤及注意事项

一、安装步骤

1. 添加PostgreSQL官方仓库

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

2. 安装PostgreSQL服务端和客户端

# 安装最新版本(例如PostgreSQL 14)
sudo yum install -y postgresql14-server

# 或指定其他版本(如PostgreSQL 12)
# sudo yum install -y postgresql12-server

3. 初始化数据库

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

4. 启动服务并设置开机自启

sudo systemctl start postgresql-14
sudo systemctl enable postgresql-14

5. 修改PostgreSQL管理员密码

sudo -u postgres psql
\password postgres  # 交互式设置密码
\q  # 退出

6. 配置远程访问

  • 修改pg_hba.conf

    sudo vim /var/lib/pgsql/14/data/pg_hba.conf
    

    将以下行中的ident改为md5,允许密码认证:

    # IPv4本地连接:
    host    all             all             127.0.0.1/32            md5
    # 允许所有IP访问(生产环境需谨慎):
    host    all             all             0.0.0.0/0               md5
    
  • 修改postgresql.conf

    sudo vim /var/lib/pgsql/14/data/postgresql.conf
    

    取消注释并修改:

    listen_addresses = '*'
    

7. 重启服务使配置生效

sudo systemctl restart postgresql-14

8. 配置防火墙(如果启用)

sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

二、注意事项

  1. 版本选择

    • 官方仓库默认提供最新版本,如需旧版需指定版本号(如postgresql12-server)。
    • 通过yum list postgresql*查看可用版本。
  2. 目录路径

    • 数据目录默认位于/var/lib/pgsql/<版本号>/data/,确保磁盘空间充足。
  3. 安全建议

    • 生产环境避免使用0.0.0.0/0开放所有IP,应限定访问来源IP。
    • 定期更新PostgreSQL版本以修复安全漏洞。
  4. SELinux问题
    如果启用了SELinux,需确保策略允许PostgreSQL运行:

    sudo setenforce 0  # 临时关闭
    sudo vim /etc/selinux/config  # 永久关闭需修改为SELINUX=disabled
    
  5. 备份配置
    修改配置文件前,建议备份:

    sudo cp /var/lib/pgsql/14/data/postgresql.conf{,.bak}
    

三、验证安装

  1. 检查服务状态:

    systemctl status postgresql-14
    
  2. 连接测试:

    psql -U postgres -h 127.0.0.1
    
  3. 查看版本:

    psql --version
    

通过以上步骤,您可以在CentOS 7上完成PostgreSQL的安装和基础配置。根据实际需求调整安全策略和性能参数。

posted @ 2025-04-08 23:54  wobzd  阅读(513)  评论(0)    收藏  举报