• 如何在ubuntu环境下安装postgresql并配置远程访问


    1.更新ubuntu包

    sudo apt-get update
    sudo apt-get upgrade
    
    • 1
    • 2

    2.安装官方源

    # 创建文件存储库配置
    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
    # 安装最新版本的PostgreSQL
    sudo apt-get -y install postgresql
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    以上命令成功运行后,证明postgresql已经正常安装,安装完成以后会自动启动postgresql的服务。可通过以下信息查看postgresql的信息

    # 查看postgresql版本
    sudo -u postgres psql -c "SELECT version();"
    # 查看postgresql服务是否启动
    service postgresql status
    
    • 1
    • 2
    • 3
    • 4

    3.进行数据库配置

    3.1 创建用户账号密码

    在ubuntu上PostgreSQL数据库以后,会自动创建一个计算机用户postgre,以下是基于该账户进行操作的。

    运行以下命令,使用postgre用户登录postgresql

    # 切换用户
    sudo su postgres
    # 进入交互界面
    psql
    
    • 1
    • 2
    • 3
    • 4

    进行postgresql的交互界面后,可以通过运行以下信息进行用户创建

    -- 创建不带密码的账号-root
    create role root;
    -- 创建带密码的账号-root
    create user root with 'root123';
    -- 显示所有用户,并查看是否创建成功
    \du
    -- 更改postgresql密码,如修改root账号的密码
    alter user root with password 'root123#';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.2 创建数据库

    -- 创建数据库(test)
    create database test;
    -- 删除数据库(test)
    drop database test;
    -- 查询所有数据库
    \l
    -- 切换数据库test
    \c test
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3.3 创建schema

    -- 创建schema(ods),以下写法均可
     create schema ods;
     create schema if not exists ods;
    -- 为某个用户(root2)创建market
     create schema market authorization roo2;
    -- 查看当前数据库下的所有schema
    select * from information_schema.schemata;
    -- 删除schema(ods)
     drop schema if exists ods;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.4 用户权限授权

    创建完用户密码以后,可以用以下命令对用户进行权限授予

    -- 给用户root赋予超级用户权限
    alter user root with superuser;
    -- 给用户root2赋予普通权限
    alter user  root2 with privileges; 
    -- 把数据库的所有权限给予用户root
    grant all privileges on database test to root;
    -- 把某schema下(ods)的所有表(test用户下)的所有权限给予用户root2
    grant all on all tables in schema ods to root2;
    -- 把某张表(test_table)的所有权限给予用户root2
    grant all on test_table to root2;
    -- 把某张表(test_table)的查询权限给予用户root2
    grant select on table test_table to root2;
    -- 撤销用户root2的某个数据库(test)权限;
    revoke all on database test from root2;
    -- 撤销用户root2某个schema(ods)下所有表的修改(update)权限;
    revoke update on all tables in schema ods from root2;
    -- 撤销用户root2某张表(test_table)的所有权限
    revoke privileges on test_table from root2;
    -- 将某张表(test_table)的所有者给root2
    alter table test_table owner to root2;
    -- 允许用户(root)登录
    ALTER ROLE root WITH LOGIN;
    -- 禁止用户(root)登录
    ALTER ROLE root WITH NOLOGIN;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    3.5 配置远程访问

    由于postgresql在安装时会默认添加一个用户名为postgres的ubuntu系统用户,因此要先用其他账户删除postgres用户的密码,再配置属于自己的密码。

    # 删除postgres用户的密码
    sudo passwd -d postgres
    # 设置postgres用户的密码
    sudo -u postgres passwd
    
    • 1
    • 2
    • 3
    • 4

    配置完密码后,编辑/etc/postgresq/12/main/postgresql.conf文件

    sudo vim /etc/postgresql/12/main/postgresql.conf
    
    • 1

    在上述配置文件postgresql.conf中添加以下内容:

    listen_addresses = '*' 
    password_encryption = scram-sha-256
    
    • 1
    • 2

    运行以下命令,编辑/etc/postgresq/12/main/pg_hba.conf文件

     sudo vim /etc/postgresql/14/main/pg_hba.conf 
    
    • 1

    在pg_hba.conf文件末尾追加以下内容:

    host    all             all             0.0.0.0/0               scram-sha-256
    
    • 1

    添加完成后,保存退出,然后重启postgresql 服务。

    sudo service postgresql restart
    
    • 1

    3.6使用Navicat链接

    运用上述获得的信息,成功链接postgresql数据库。

    3.7 卸载Navicat

    # 移除postgresql
    sudo apt-get --purge remove postgresql\*
    # 移除配置信息
    sudo rm -r /etc/postgresql/
    sudo rm -r /etc/postgresql-common/
    sudo rm -r /var/lib/postgresql/
    sudo userdel -r postgres
    sudo groupdel postgres
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    Java开发经典实战!2022 国内知名大厂Java岗面经
    CF-957(D-E)
    consul部署
    git使用详解
    【Docker】redis分片集群搭建:3主3从,容错迁移,扩缩容
    零基础入行IC,选模拟版图还是数字后端?
    基于istio实现单集群地域故障转移
    【Redis】基础数据结构-quicklist
    V853开发板硬件框图及各模块原理图【内附PDF版本】
    UDP网络套接字编程
  • 原文地址:https://blog.csdn.net/qq_41780234/article/details/126083484