1.运行环境
WSL+Ubuntu 20.04
2.安装Postgresql
进入Linux命令行,参照Postgresql官网安装指南
# Create the file repository configuration:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# Update the package lists:
sudo apt-get update
# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
#下面语句为安装默认最新版本postgresql
#如果安装非默认版本,则指定版本。如安装14版本,则在程序包名称后输入版号,”postgresql-14“
sudo apt-get -y install postgresql
安装完成
3.启动Posgtgresql数据库
(1)查看数据库状态
sudo service postgresql status
(2)启动数据库
sudo service postgresql start
(3)停止数据库
sudo service postgresql stop
(4)重启数据库
sudo service postgresql restart
4.修改postgres密码
(1)配置linux的postgres用户
PostgreSQL默认安装,会创建一个默认的linux用户postgres,设置postgres用户密码
- 删除用户postgres的密码
sudo passwd -d postgres
- 设置用户postgres的密码
sudo -u postgres passwd
- 创建新的超级用户
sudo -u postgres createuser --superuser 【user name】
(2)配置新的数据库账户
- 登录Postgresql客户端
sudo -u postgres psql
- 设置新的数据库用户postgres的密码
ALTER USER postgres WITH PASSWORD 'postgres';
或
\password
(3)查看当前数据库账户
\c
(4)查看全部数据库账户
\du
5.配置Postgresql
参照PostgreSQL 允许远程访问设置方法 - 疯子110 - 博客园 (cnblogs.com)
(1)配置文件路径
Postgresql 14配置文件默认路径/etc/postgresql/14/main/
(2)PostgreSQL 角色和身份认证方式
PostgreSQL 数据库访问权限是通过角色来处理的。一个角色代表一个数据库用户或者一个数据库用户组。
PostgreSQL 支持多种身份认证方式。最常用的方法如下:
Trust - 只要满足 pg_hba.conf 定义的条件,一个角色就可以不使用密码就能连接服务器。
Password - 通过密码,一个角色可以连接服务器。密码可以被存储为 scram-sha-256、md5 和 password(明文)。
Ident - 仅仅支持 TCP/IP 连接。它通常通过一个可选的用户名映射表,获取客户端操作系统用户名。
Peer - 和 Ident 一样,仅仅支持本地连接。
- 修改/etc/postgresql/14/main/中的pg_hba.conf文件,增加一行,【host all all 172.28.192.0/24 scram-sha-256】其中IP地址为客户端的IP地址。
- 由于WSL2的特性,每次宿主系统或子系统重新启动,WSL的宿主端和客户端的IP会发生变化。
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
host all all 172.28.192.0/24 scram-sha-256
6.设置防火墙
参照ubuntu关于防火墙开放端口 - 博二爷 - 博客园 (cnblogs.com)
7.卸载Postgresql
(1)查看Postgresql进程
ps -C postgres
确认无运行Postgresql
(2)卸载Postgresql 相关的包
sudo apt-get --purge remove postgresql\*
(3)删除配置文件和User
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
userdel -r postgres
groupdel postgres
卸载完成