温馨提示×

PostgreSQL在Ubuntu上的配置方法

小樊
44
2025-12-26 13:15:59
栏目: 云计算

Ubuntu 上 PostgreSQL 配置全流程

一 安装与初始化

  • 更新索引并安装:sudo apt update && sudo apt install -y postgresql postgresql-contrib。安装完成后会自动创建系统用户 postgres 与数据库超级用户,服务默认已启动。检查状态:sudo systemctl status postgresql;如未启动:sudo systemctl start postgresql;设置开机自启:sudo systemctl enable postgresql。建议同时安装 postgresql-contrib 获取扩展功能。登录到 psql:sudo -u postgres psql。以上步骤适用于 Ubuntu 20.04/22.04/24.04 等常见版本。

二 基础安全与账户配置

  • 修改 postgres 用户密码:在 psql 中执行 ALTER USER postgres WITH PASSWORD ‘YourStrongP@ssw0rd’;。创建业务用户与数据库:CREATE USER myuser WITH PASSWORD ‘pwd’; CREATE DATABASE mydb OWNER myuser; GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;。如需本地系统用户免密登录(仅本机开发环境),可将本地认证方式由 peer 调整为 md5(pg_hba.conf 中 local 行);生产环境不建议放宽本地认证。以上命令在 psql 内执行,完成后可用 \q 退出。

三 远程访问配置

  • 修改监听地址:编辑 /etc/postgresql/<版本>/main/postgresql.conf,设置 listen_addresses = ‘*’(或指定内网网段/主机)。配置客户端认证:编辑同目录 pg_hba.conf,按需添加规则,例如 host all all 0.0.0.0/0 scram-sha-256(推荐)或 host all all 0.0.0.0/0 md5(兼容旧客户端)。重启生效:sudo systemctl restart postgresql。防火墙放行:sudo ufw allow 5432/tcp && sudo ufw reload。注意将 <版本> 替换为实际版本目录(如 141617)。以上为 Ubuntu 上启用远程连接的通用做法。

四 常用运维与安全要点

  • 备份与恢复:逻辑备份 pg_dump -U myuser -h localhost mydb > mydb.sql;恢复 psql -U myuser -h localhost -d mydb -f mydb.sql。日志排查:tail -n 50 /var/log/postgresql/postgresql-<版本>-main.log。性能基线(示例,按内存与负载调优):shared_buffers ≈ 物理内存的 1/4,work_mem 4–64MB,effective_cache_size 为操作系统可用缓存估算值;max_connections 结合应用并发设置。连接工具:可安装 pgAdmin4 进行图形化管理。以上命令与参数适用于日常运维与性能起步调优。

五 常见问题与快速修复

  • 忘记 postgres 密码:systemctl stop postgresql;以单用户模式启动 sudo -u postgres psql --single -d postgres;执行 ALTER USER postgres WITH PASSWORD ‘newpwd’; \q;systemctl start postgresql。FATAL: password authentication failed:核对 pg_hba.conf 中对应行是否为 scram-sha-256/md5,确认客户端使用正确用户名、密码与数据库,必要时查看日志定位。连接被拒绝/超时:确认 listen_addresses 已改为 ‘*’,pg_hba.conf 已放行来源网段,云主机安全组/本机防火墙已开放 5432/tcp,并用 psql -h -U -d 测试。以上步骤覆盖最常见的认证与网络连通性问题。

0