按照官方文档安装,即可安装成功
https://www.postgresql.org/download/linux/debian/
添加存储库
#添加存储库
sudo apt install -y postgresql-common
#执行 存储库内 命令,自动处理某些东西
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
安装 postgresql 17
sudo apt -y install postgresql
安装成功后,默认密码是 空密码
终端进入 postgresql 数据库管理
直接回车即可
sudo -u postgres psql
案例- 创建 超管账户
1.进入终端
sudo -u postgres psql
2.创建超管用户和密码,并授权
# 创建一个新用户 fox
CREATE USER fox WITH SUPERUSER;
# 设置用户 fox 密码 mypassword
ALTER USER fox WITH PASSWORD 'mypassword';
# 授予数据库特权
GRANT ALL PRIVILEGES ON DATABASE postgres TO fox;
# 退出
\q
案例- 创建 新库,并授权给 指定用户
1.进入终端
sudo -u postgres psql
2.创建数据库
CREATE DATABASE mydb;
2.创建用户和密码,并授权
-- 切换到目标数据库
\c mydb
# 创建用户 feng 密码 mypassword
CREATE USER feng WITH PASSWORD 'mypassword';
# 授权用户 feng 有数据库 mydb 访问权限
GRANT CONNECT ON DATABASE mydb TO feng;
-- 授权使用 schema
GRANT USAGE,CREATE ON SCHEMA public TO feng;
-- 授权在 schema 中 授权表操作权限
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO feng;
-- 可选:授权未来表的权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO feng;
# 退出
\q
验证授权
进入终端
sudo -u postgres psql
验证授权
-- 查看数据库权限
\l mydb
-- 查看 schema 权限
\dn+ public
-- 查看表权限
\dp public.*
配置 远程连接,客户端访问
远程连接
sudo vim /etc/postgresql/<版本号>/main/postgresql.conf
sudo vim /etc/postgresql/17/main/postgresql.conf
找到 listen_addresses
行,修改为远程连接的 IP
或 '*'
:
listen_addresses = '*' # 允许所有 IP 地址
# listen_addresses = '0.0.0.0,::' # 允许 IPv4 和 IPv6
客户端访问
sudo vim /etc/postgresql/<版本号>/main/pg_hba.conf
sudo vim /etc/postgresql/17/main/pg_hba.conf
最后心的一行增加
# 格式:host 数据库 用户 IP范围 认证方法
host all all 0.0.0.0/0 scram-sha-256
host all all ::0/0 scram-sha-256
防火墙端口 开启
ufw
sudo ufw allow 5432/tcp # 默认 PostgreSQL 端口
sudo ufw reload
iptables
sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT
sudo netfilter-persistent save # 保存规则(Debian 默认工具)
最后重启 PostgreSQL
sudo systemctl restart postgresql