PostgreSQL 14+ 配置

本文介绍在 PostgreSQL 14+ 中手动创建数据库、用户并授权的完整操作流程。

1. 连接 PostgreSQL

# 切换到 postgres 用户并连接
sudo -u postgres psql

2. 创建用户角色

-- 创建用户角色并设置密码
CREATE ROLE root WITH LOGIN PASSWORD 'YOUR_PASSWORD';

3. 创建数据库

-- 创建数据库并指定所有者
CREATE DATABASE redirect OWNER root;

4. 授权

-- 授予数据库全部权限
GRANT ALL PRIVILEGES ON DATABASE redirect TO root;

-- 切换到 redirect 数据库,授予 schema 和表权限
\c redirect
GRANT ALL ON SCHEMA public TO root;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO root;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO root;

5. 远程访问配置

编辑 postgresql.conf:

# 找到配置文件位置
sudo -u postgres psql -c 'SHOW config_file;'

# 编辑配置
sudo vi /etc/postgresql/*/main/postgresql.conf

# 修改监听地址
listen_addresses = '*'

编辑 pg_hba.conf,添加远程访问规则:

sudo vi /etc/postgresql/*/main/pg_hba.conf

# 在文件末尾添加(允许所有 IP 使用密码连接)
host    all    all    0.0.0.0/0    md5

# 重启 PostgreSQL
sudo systemctl restart postgresql

6. 防火墙放行

# Ubuntu / Debian (ufw)
sudo ufw allow 5432/tcp

# CentOS / RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=5432/tcp
sudo firewall-cmd --reload

7. 验证连接

# 本地验证
psql -U root -h localhost -p 5432 -d redirect

# 远程验证
psql -U root -h  -p 5432 -d redirect

对应环境变量

DB_DRIVER=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USER=root
DB_PASSWORD=YOUR_PASSWORD
DB_NAME=redirect
⚠️
PostgreSQL 默认端口为 5432,与本项目 DB_PORT 默认值 3306 不同,部署时需通过环境变量 DB_PORT=5432 覆盖。
📖
如遇到连接问题,请阅读 常见问题。