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覆盖。
如遇到连接问题,请阅读 常见问题。