---------- 前言 ----------
💻系统: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