debian13安装PostgreSQL并远程连接
- 安装
sudo apt update
sudo apt install -y postgresql postgresql-contrib
- 启动并开机自启
sudo systemctl start postgresql
sudo systemctl enable postgresql
-
切换到 postgres 用户登录
sudo -u postgres psql
-
设置postgres密码,在 psql 中执行
\password postgres
输入新密码(如 your_strong_password)。
然后可以用密码登录
psql -U postgres -h localhost -W
-
创建用户myuser
CREATE USER myuser WITH PASSWORD 'mypass';
-
创建数据库
CREATE DATABASE myapp;
-修改数据库所有者为 myuser
ALTER DATABASE myapp OWNER TO myuser;
-连接到数据库,需要myuser的密码
\c mydb
-
设置 schema 所有者为myuser
ALTER SCHEMA public OWNER TO myuser;
-
授予现有对象权限
#授予所有表的全部权限
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;#授予所有序列(常用于自增ID)的全部权限
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myuser;#授予所有函数的权限(可选
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO myuser;
- 设置未来对象的默认权限
#设置默认表权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO myuser;#设置默认序列权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO myuser;#设置默认函数权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON FUNCTIONS TO myuser;
-
退出 psql
\q
远程连接
vim /etc/postgresql/17/main/postgresql.conf
找到并修改:
# 将localhost改为*
listen_addresses = 'localhost' → listen_addresses = '*'# 或指定 IP
# listen_addresses = '127.0.0.1,192.168.1.100'
在文件末尾添加一行,允许某个网段访问:
/etc/postgresql/17/main/pg_hba.conf
在最后加入下列内容
# TYPE DATABASE USER ADDRESS METHODhost myapp myuser 0.0.0.0/0 scram-sha-256
重启服务
sudo systemctl restart postgresql
postgresql默认端口 5432