下面给你一份在 CentOS 上配置 PostgreSQL 的完整实操指南,从安装到基本配置、远程访问、用户与数据库创建,适合生产/学习环境。
CentOS 默认仓库版本较旧,建议使用 PostgreSQL 官方源。
# CentOS 7
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# CentOS 8 / Stream
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# CentOS 7
sudo yum install -y postgresql16-server postgresql16-contrib
# CentOS 8 / Stream
sudo dnf install -y postgresql16-server postgresql16-contrib
可替换
16为15 / 14 / 13
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
查看状态:
systemctl status postgresql-16
sudo -i -u postgres
进入数据库:
psql
ALTER USER postgres WITH PASSWORD 'StrongPassword';
退出:
\q
exit
编辑配置文件:
sudo vi /var/lib/pgsql/16/data/postgresql.conf
修改:
listen_addresses = '*'
编辑 pg_hba.conf:
sudo vi /var/lib/pgsql/16/data/pg_hba.conf
添加(示例):
# IPv4 远程访问
host all all 0.0.0.0/0 md5
或更安全:
host all all 192.168.1.0/24 md5
sudo firewall-cmd --add-port=5432/tcp --permanent
sudo firewall-cmd --reload
sudo systemctl restart postgresql-16
sudo -i -u postgres
psql
CREATE USER myuser WITH PASSWORD 'mypassword';
CREATE DATABASE mydb OWNER myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
编辑 postgresql.conf:
max_connections = 200
shared_buffers = 2GB
work_mem = 16MB
maintenance_work_mem = 512MB
修改后重启生效。
ss -lntp | grep 5432
tail -f /var/lib/pgsql/16/data/log/
psql -h 127.0.0.1 -U myuser -d mydb
| 系统 | 命令 |
|---|---|
| CentOS 7 | yum |
| CentOS 8 / Stream | dnf |
| 默认数据目录 | /var/lib/pgsql/16/data |
如果你愿意,我可以帮你:
直接告诉我你的 CentOS 版本 + PostgreSQL 版本 + 使用场景 即可。