PostgreSQL 部署
PostgreSQL 部署
安装
sudo apt install postgresql
安装完成后,会自动注册一个 postgres 的用户,用于支持 PostgreSQL 的本机免密登录。
此外,PostgreSQL 的配置文件存储在 /etc/postgresql/15/main 下,其中 15 是版本号。
配置公网访问
由于我将 PostgreSQL 部署在服务器上,因此我需要放行除本机之外的其他 IP 的访问。
本地修改
先把postgresql服务停止。
sudo systemctl stop postgresql
- 进入目录/etc/postgresql/15/main

- 
修改文件postgresql.conf listen_addresses = '*' # what IP address(es) to listen on;

- 
修改文件pg_hba.conf host all all 192.168.88.198/32 md5 host all all 0.0.0.0/0 md5
第一种格式:host all all 192.168.88.198/32 md5
可以设置指定ip连接到数据库服务上。
第二种格式:host all all 0.0.0.0/0 md5
任意外部ip都可访问到数据库服务。
上述方式选择其一即可。

- 
重启postgresql服务 sudo systemctl start postgresql

- 成功解决问题。
配置文件格式解释
host    all      all      192.168.88.198/32     md5
host    all      all      0.0.0.0/0             md5
语法
local <dbname> <user> <auth-method> [auth-options]
host <dbname> <user> <ip/masklen> <auth-method> [auth-options]


服务器放行端口
PostgreSQL 默认使用的端口是 5432,采用TCP协议。配置完成后无需重启服务器。

使用
常用指令
- \l:列出当前所有的数据库。
- \du:列出所有用户及其权限。
- \dt:列出当前数据库中的所有表。
- \dp:列出当前数据库中的所有表的所有权限信息
- \d:列出指定表结构。
- \c:连接到另一个数据库,相当于 MySQL 的- use。
- \q:退出 PostgreSQL 命令行客户端。
- \?:获取帮助信息,列出可用的 psql 命令及其用法。
登录
默认使用的用户是 postgres ,这里由于默认设置了身份验证要求登录 PostgreSQL 的用户名和当前系统用户名要一致,因此要先切换到该用户:
sudo -i -u postgres
psql
或者直接一条命令解决:
psql -U postgres -d 要使用的数据库 -h 服务器IP -p 5432
不指定要使用的数据库也可以
创建用户并授权
PostreSQL 的默认配置是自动创建一个 postgres 用户,该用户有完全的 superadmin 超管权限,可以管理系统中整个 PostgreSQL 实例。但是这个 postgres 用户仅是用于运行 PostgreSQL 数据库服务的,不能用于登录系统(即没有登录 shell,其登录 shell 被设置成 /bin/false 或 /usr/sbin/nologin,也没有家目录)
示例:创建一个 new_user 用户并授权
- 
以超级管理员 postgres身份登录数据库$ psql -U postgres -h 服务器IP -p 5432
- 
创建新用户 create user new_user with password '123456';
- 
为新用户授权 grant connect on database test to new_user; # 连接权限 grant all privileges on database test to new_user; # 数据库test的所有权限 grant all privileges on all tables in schema public to new_user; # 数据库test中所有表的操作权限
- 
其他用户管理操作 alter user new_user password '654321'; # 修改用户密码
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号