ubuntu部署postgres14.9
通过apt安装postgres
查看安装候选,排在第一个的版本就是默认安装的版本
apt-cache show postgresql
安装postgresql包以及postgresql-contrib包,该包提供了一些PostgreSQL的额外功能
apt install postgresql postgresql-contrib
安装完成后会默认创建postgres用户
su postgres
使用postgres用户身份执行命令psql,即可立刻使用psql工具连接到PostgreSQL服务器
psql
为默认用户postgres设置密码
alter role postgres with password '新密码';
配置密码登录
打开pg_hba.conf
vim /etc/postgresql/14/main/pg_hba.conf
在底部可以看到针对用户的一系列配置
每一行都可以看作是一条验证规则,以 local 起始的行代表本地的 socket 连接,以 host 起始的行代表基于 TCP/IP 的 socket 连接。前者每行四个值,分别为 TYPE、DATABASE、USER、METHOD,后者每行五个值,多一个 ADDRESS 字段。每个值之间使用任意数量的空格分开即可,无需对齐
将上述文件第 90 行的第四个值,由 peer(从内核获取操作系统用户名进行验证)改为 md5(使用密码的 md5 散列值进行验证)。如果希望针对 PostgreSQL 的所有用户都采取 md5 验证,可以顺带修改第 95 行。如果希望为特定用户添加验证规则,也可以参考上述规则,自行添加一个条目
修改并保存上述配置文件后,需要重启 PostgreSQL 服务
systemctl restart postgresql
重启完成后,在任何操作系统用户下,都可以通过 psql 采用用户名密码的方式登录(无需切换到 postgres 用户)
psql --username=postgres #然后输入设置的密码即可
配置 PostgreSQL 远程访问
打开 postgresql.conf 配置文件
vim /etc/postgresql/14/main/postgresql.conf
全局搜索“listen”,将注释取消,将“localhost”修改为'*',代表监听一切网段的主机的请求
打开 pg_hba.conf 配置文件
vim /etc/postgresql/14/main/pg_hba.conf
第 97 行为 PostgreSQL 的默认创建的 IPv4 验证规则,可以看到默认仅接受来自 127.0.0.1/32 的网络请求。为了允许其他网段的客户端访问,将其更改为 `all`。
修改并保存上述配置文件后,需要重启 PostgreSQL 服务。
systemctl restart postgresql