Ubuntu安装Postgresql并远程访问

---------- 前言 ----------
💻系统:Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-53-generic x86_64)
🐘Postgresql:psql (PostgreSQL) 15.1 (Ubuntu 15.1-1.pgdg22.04+1)
---------- 前言 ----------

1.安装Postgresql

安装可以参考官网教程:https://www.postgresql.org/download/linux/ubuntu/
主要命令如下:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql

2.本地登陆数据库

Postgresql安装完后会在本地创建一个postgres的用户,该用户可以无需密码登陆数据库

2.1 切换到postgres用户

sudo -i -u postgres

输入psql进入数据库,进入成功显示如下:

postgres@MyPc:~$ psql
psql (15.1 (Ubuntu 15.1-1.pgdg22.04+1))
输入 "help" 来获取帮助信息.

postgres=#

想要退出数据库输入 exit即可,想要退出postgres用户输入exit即可

3.修改配置以支持远程访问数据库

3.1 修改postgresql的postgres用户密码

本地进入数据库(参考步骤2),执行

ALTER USER postgres WITH PASSWORD '【你的密码】';

3.2 修改postgresql.conf

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

讲第60行的 listen_addresses 注释去掉,并改成

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -
# 监听所有的地址
listen_addresses = '*'          # what IP address(es) to listen on;
                                        # comma-separated list of addresses;

3.2 修改postgresql的配置文件

sudo /etc/postgresql/15/main/pg_hba.conf

在文末加一行

# 允许所有ip地址访问
host    all             all             0.0.0.0/0               md5

退出保存

执行

 service postgresql restart

重启服务后即可根据ip+用户账号密码远程访问了

本人Navicat Premium版本16.0.12,连接postgresql报错:
错误: 字段 "datlastsysoid" 不存在
LINE 1: SELECT DISTINCT datlastsysoid FROM pg_database
使用Dbeaver正常,感觉Navicat 有bug,不知道会不会修复😭

卸载Postgresql

1.停止postgresql服务

service postgresql stop

2.使用apt卸载

sudo apt-get purge 'postgresql-*'
sudo apt-get autoremove 'postgresql-*'
sudo userdel -r postgres
sudo groupdel postgres

删除相关文件,该操作会彻底删除数据库保存的数据,谨慎操作

sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/

删除用户信息

sudo userdel -r postgres
sudo groupdel postgres

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×