Debian下PostgreSQL配置指南
Debian下PostgreSQL配置指南
1. 安装PostgreSQL
首先更新系统包列表并安装PostgreSQL及其附加组件(postgresql-contrib
包含额外工具和模块):
sudo apt update
sudo apt install postgresql postgresql-contrib
安装完成后,PostgreSQL服务会自动启动,可通过sudo systemctl status postgresql
验证状态(显示“active (running)”即为正常)。
2. 初始配置:切换用户与修改默认密码
PostgreSQL默认以postgres
系统用户运行,需切换至该用户执行初始配置:
sudo -i -u postgres
进入PostgreSQL交互终端(psql
),修改postgres
用户的默认密码(增强安全性):
ALTER USER postgres WITH PASSWORD 'your_secure_password';
输入\q
退出psql
终端。
3. 创建数据库与用户
3.1 创建数据库
在psql
中执行以下命令创建数据库(如mydb
):
CREATE DATABASE mydb;
3.2 创建用户并授予权限
创建专用用户(如myuser
)并设置密码,随后将数据库所有权授予该用户:
CREATE USER myuser WITH ENCRYPTED PASSWORD 'user_secure_password';
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
输入\q
退出psql
。
4. 配置连接与认证
4.1 修改postgresql.conf
(主配置文件)
postgresql.conf
位于/etc/postgresql/<
version>
/main/
目录(<
version>
为PostgreSQL版本号,如14),需调整以下关键参数:
- 允许远程连接:将
listen_addresses
从localhost
改为*
(允许所有IP)或指定服务器IP(如192.168.1.100
); - 设置端口:默认
port = 5432
(可根据需求修改,需确保防火墙开放该端口); - 调整最大连接数:
max_connections
(默认100,根据服务器内存调整,如max_connections = 200
)。
修改后需重启服务使更改生效:
sudo systemctl restart postgresql
```。
### 4.2 修改`pg_hba.conf`(客户端认证配置)
`pg_hba.conf`位于同一目录,用于控制客户端访问权限。需添加或修改规则以允许特定IP或网段连接:
- **允许本地连接**(默认已存在,可保留):
`host all all 127.0.0.1/32 scram-sha-256`
- **允许远程IP段连接**(如`192.168.1.0/24`):
`host all all 192.168.1.0/24 scram-sha-256`
>
注:`scram-sha-256`为更安全的密码认证方式,推荐替代旧的`md5`。修改后需重新加载配置:
```bash
sudo systemctl reload postgresql
```。
## 5. 防火墙配置
若系统启用`ufw`防火墙,需允许PostgreSQL端口(默认5432)的流量:
```bash
sudo ufw allow 5432/tcp
验证防火墙规则:
sudo ufw status
应显示“5432/tcp ALLOW”。
6. 测试连接
6.1 本地连接
使用psql
命令行工具测试本地连接:
psql -U myuser -d mydb -h localhost
输入密码后,若出现mydb=>
提示符则表示连接成功。
6.2 远程连接
从远程机器使用相同命令测试(替换localhost
为服务器IP):
psql -U myuser -d mydb -h 192.168.1.100
输入密码后成功连接则说明远程配置生效。
7. 可选:配置SSL加密(增强安全性)
若需加密客户端与服务器之间的通信,可按以下步骤配置SSL:
7.1 生成SSL证书与私钥
sudo mkdir -p /etc/postgresql/<
version>
/main/ssl
sudo openssl req -new -x509 -days 365 -nodes -text -subj "/CN=postgres" -out /etc/postgresql/<
version>
/main/ssl/server.crt -keyout /etc/postgresql/<
version>
/main/ssl/server.key
sudo chmod 600 /etc/postgresql/<
version>
/main/ssl/server.key
7.2 修改postgresql.conf
启用SSL
ssl = on
ssl_cert_file = '/etc/postgresql/<
version>
/main/ssl/server.crt'
ssl_key_file = '/etc/postgresql/<
version>
/main/ssl/server.key'
7.3 重启服务
sudo systemctl restart postgresql
此时,客户端连接时需添加sslmode=require
参数(如psql "sslmode=require host=192.168.1.100 dbname=mydb user=myuser password=user_secure_password"
)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下PostgreSQL配置指南
本文地址: https://pptw.com/jishu/727032.html