温馨提示×

PostgreSQL在CentOS上怎么用

小樊
79
2026-08-20 03:08:24
栏目: 云计算

在 CentOS 上使用 PostgreSQL,一般包括 安装 → 初始化 → 启动 → 登录 → 基本使用。下面按常见场景一步步说明。


一、安装 PostgreSQL(以 CentOS 7/8 为例)

1️⃣ 使用官方仓库(推荐,版本较新)

CentOS 7

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

# 安装 PostgreSQL 14(可换成 15/16)
sudo yum install -y postgresql14-server postgresql14-contrib

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

sudo dnf install -y postgresql14-server postgresql14-contrib

2️⃣ 使用系统自带版本(不推荐,版本较老)

sudo yum install -y postgresql-server postgresql-contrib

二、初始化数据库

官方 RPM 安装方式

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

系统自带方式

sudo postgresql-setup initdb

三、启动并设置开机自启

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

查看状态:

sudo systemctl status postgresql-14

四、登录 PostgreSQL

PostgreSQL 默认会创建一个 postgres 系统用户。

切换到 postgres 用户

sudo -i -u postgres
psql

或一条命令:

sudo -u postgres psql

五、基本数据库操作

1️⃣ 查看数据库

\l

2️⃣ 创建数据库

CREATE DATABASE testdb;

3️⃣ 切换数据库

\c testdb

4️⃣ 创建用户

CREATE USER testuser WITH PASSWORD 'testpassword';

5️⃣ 授权

GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;

6️⃣ 创建表

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    age INT
);

7️⃣ 插入和查询

INSERT INTO users (name, age) VALUES ('Tom', 25);
SELECT * FROM users;

六、允许远程连接(常用)

1️⃣ 修改配置文件

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

改成:

listen_addresses = '*'

2️⃣ 修改 pg_hba.conf

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

添加一行(示例):

host  all  all  0.0.0.0/0  md5

3️⃣ 重启 PostgreSQL

sudo systemctl restart postgresql-14

⚠️ 生产环境记得限制 IP,不要 0.0.0.0


七、开放防火墙(如有)

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

八、常用管理命令

功能 命令
启动 systemctl start postgresql-14
停止 systemctl stop postgresql-14
重启 systemctl restart postgresql-14
查看版本 psql --version
备份 pg_dump dbname > backup.sql
恢复 psql dbname < backup.sql

九、客户端连接示例

psql -h 127.0.0.1 -p 5432 -U testuser -d testdb

如果你告诉我:

  • ✅ CentOS 版本
  • ✅ PostgreSQL 版本
  • ✅ 是本地用还是生产环境
  • ✅ 是否需要主从 / 备份 / 性能优化

我可以给你更精确的配置方案。

0 踩