在 CentOS 上安装 PostgreSQL 是一个相对直接的过程,但需要遵循一系列步骤以确保成功安装和配置,以下是详细的指南:
更新系统
确保你的 CentOS 系统是最新的,打开终端并运行以下命令来更新系统软件包:
sudo yum update y
2. 导入 PostgreSQL Yum 存储库
PostgreSQL 官方提供了一个 Yum 存储库,可以方便地在 CentOS 上安装和管理 PostgreSQL,根据你的 CentOS 版本(7 或 8),运行以下命令之一来导入存储库:
对于 CentOS 7:
sudo yum install y https://download.postgresql.org/pub/repos/yum/reporpms/EL7x86_64/pgdgredhatrepolatest.noarch.rpm
对于 CentOS 8:
sudo dnf install y https://download.postgresql.org/pub/repos/yum/reporpms/EL8x86_64/pgdgredhatrepolatest.noarch.rpm
安装 PostgreSQL
一旦存储库被导入,你可以安装 PostgreSQL 服务器和客户端软件包,以安装 PostgreSQL 12 为例:
sudo yum install y postgresql12 postgresql12server
初始化数据库
安装完成后,需要初始化数据库集群:
sudo /usr/pgsql12/bin/postgresql12setup initdb
这将创建必要的数据库文件和目录结构。
5. 启动并启用 PostgreSQL 服务
启动 PostgreSQL 服务并将其设置为开机自启:
sudo systemctl start postgresql12 sudo systemctl enable postgresql12
修改默认用户密码
PostgreSQL 安装后会创建一个名为postgres
的默认用户,为了安全性,建议修改其密码:
sudo i u postgres psql ALTER USER postgres WITH PASSWORD 'your_new_password'; \q exit
创建新用户和新数据库(可选)
你可以根据需要创建新用户和新数据库,并授予相应的权限:
CREATE USER newuser WITH PASSWORD 'newpassword'; CREATE DATABASE newdatabase; GRANT ALL PRIVILEGES ON DATABASE newdatabase TO newuser;
配置远程访问(可选)
如果你需要从远程主机连接到你的 PostgreSQL 数据库,需要进行一些额外的配置:
开放防火墙端口:
sudo firewallcmd addport=5432/tcp permanent sudo firewallcmd reload
修改配置文件以允许远程连接:
编辑postgresql.conf
文件,将listen_addresses
设置为:
vi /var/lib/pgsql/12/data/postgresql.conf
找到并修改(或添加)以下行:
listen_addresses = '*'
编辑pg_hba.conf
文件以允许所有 IP 地址访问:
vi /var/lib/pgsql/12/data/pg_hba.conf
添加以下行:
host all all 0.0.0.0/0 md5
重启 PostgreSQL 服务:
sudo systemctl restart postgresql12
验证安装
你可以通过尝试连接到 PostgreSQL 数据库来验证安装是否成功:
psql h your_server_ip U postgres d postgres
输入你在步骤 6 中设置的密码,如果连接成功,则说明 PostgreSQL 已正确安装和配置。
常见问题解答(FAQs)
Q1: PostgreSQL 服务无法启动怎么办?
A1: PostgreSQL 服务无法启动,首先检查是否有端口冲突,使用以下命令查看端口占用情况:
sudo netstat tuln | grep 5432
如果有其他进程占用了端口 5432,终止该进程或更改 PostgreSQL 的监听端口,检查 PostgreSQL 的日志文件(通常位于/var/lib/pgsql/12/data/pg_log/
)以获取更多错误信息。
Q2: 如何更改 PostgreSQL 的监听端口?
A2: 要更改 PostgreSQL 的监听端口,你需要编辑postgresql.conf
文件并找到port
参数,将其设置为你想要的端口号,然后重启 PostgreSQL 服务:
vi /var/lib/pgsql/12/data/postgresql.conf
找到并修改以下行:
port = 5432 # 将其更改为你想要的端口号,5433
保存文件并重启 PostgreSQL 服务:
sudo systemctl restart postgresql12