1.安装

# 更新APT源
sudo apt upgrade
sudo apt update

# 安装postgresql及postgresql-contrib
# contrib包含一些不属于 PostgreSQL 核心包的实用工具和功能。
# 在大多数情况下,最好将contrib包与PostgreSQL核心一起安装。
sudo apt install postgresql
apt install postgresql-contrib

# 检查运行状态
# 回显中服务处于active状态即可
service postgresql status

# 检查版本输出
# 有版本号打印即可
sudo -u postgres psql -c "SELECT version();"

2.登陆

安装后,会同步建立一个特殊的数据库用户postgres,可以使用该账号进行登陆:

sudo su postgres psql

# psql (12.9 (Ubuntu 12.9-0ubuntu0.20.04.1))
# Type "help" for help.
# 
# postgres=#

使用\q退出。

另外,也可以使用sudo -u postgres psql -U postgers -h localhost进行登陆。

3.修改密码

3.1.修改linux系统postgres用户的密码

# 删除密码
sudo passwd -d postgres

# 设置密码
sudo -u postgres passwd
```shell
# 删除密码
sudo passwd -d postgres

# 设置密码
sudo -u postgres passwd

3.2. 修改数据库默认用户postgres的密码

postgres用户默认密码随机,使用时需要修改密码,命令如下:

# 登陆数据库
sudo su postgres psql

# 修改密码
ALTER USER postgres WITH PASSWORD 'password';
```shell
# 登陆数据库
sudo su postgres psql

# 修改密码
ALTER USER postgres WITH PASSWORD 'password';

4.允许远程登陆

PostgreSQL 支持多种身份认证方式。最常用的方法如下:

  • Trust: 只要满足pg_hba.conf定义的条件,一个角色就可以不使用密码就能连接服务器
  • Password: 通过密码,一个角色可以连接服务器。密码可以被存储为 cram-sha-256, md5, 和 password(明文)
  • Ident: 仅仅支持 TCP/IP 连接。它通常通过一个可选的用户名映射表,获取客户端操作系统用户名。
  • Peer: 和 Ident 一样,仅仅支持本地连接。

PostgreSQL 客户端身份验证通常被定义在pg_hba.conf文件中。默认情况下,对于本地连接,PostgreSQL 被设置成身份认证防范 peer

4.1.配置允许远程连接

sudo vim /etc/postgresql/16/main/postgresql.conf

修改CONNECTIONS AND AUTHENTICATION节中listen\_addresses字段:

listen_addresses = '*'

修改后保存文件。

4.2.修改认证方式

# 允许密码身份验证
sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/16/main/pg_hba.conf

# 将识别方法从对等更改为信任:
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/16/main/pg_hba.conf

编辑/etc/postgresql/16/main/pg_hba.conf

# 修改IPv4及IPv6段落,追加0.0.0.0

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             0.0.0.0/0           scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256
host    all             all             0.0.0.0/0                md5

修改后保存文件,重启服务:

sudo systemctl restart postgresql

Ref: