在 CentOS 上使用 PostgreSQL,一般包括 安装 → 初始化 → 启动 → 登录 → 基本使用。下面按常见场景一步步说明。
# 安装仓库
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
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
sudo yum install -y postgresql-server postgresql-contrib
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 默认会创建一个 postgres 系统用户。
sudo -i -u postgres
psql
或一条命令:
sudo -u postgres psql
\l
CREATE DATABASE testdb;
\c testdb
CREATE USER testuser WITH PASSWORD 'testpassword';
GRANT ALL PRIVILEGES ON DATABASE testdb TO testuser;
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
age INT
);
INSERT INTO users (name, age) VALUES ('Tom', 25);
SELECT * FROM users;
sudo vi /var/lib/pgsql/14/data/postgresql.conf
改成:
listen_addresses = '*'
sudo vi /var/lib/pgsql/14/data/pg_hba.conf
添加一行(示例):
host all all 0.0.0.0/0 md5
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
如果你告诉我:
我可以给你更精确的配置方案。