文章目录
  1. 1. 准备RPM包
  2. 2. 安装
  3. 3. 初始化数据库
  4. 4. 修改service环境变量
  • 启动
    1. 1. 登录
    2. 2. 查看当前数据目录
    3. 3. 修改密码
  • 数据库登录权限设置
    1. 1. 新建superAdmin
    2. 2. 其它pgsql命令
      1. 2.1. 切换到另一个数据库
      2. 2.2. 列出所有可用的数据库
      3. 2.3. 列出所有可用的表
      4. 2.4. 描述表
      5. 2.5. 列出所有可用的 schema
      6. 2.6. 列出所有可用的函数
      7. 2.7. 列出所有视图
      8. 2.8. 再次执行上一个命令
      9. 2.9. 查看命令记录
      10. 2.10. 获取帮助
      11. 2.11. 开启查询执行时间
      12. 2.12. 使用编辑器编辑命令
      13. 2.13. 切换输出选项
      14. 2.14. 退出 psql
  • 准备RPM包

    下载地址

    1
    2
    3
    4
    postgresql10-10.4-1PGDG.rhel7.x86_64.rpm
    postgresql10-contrib-10.4-1PGDG.rhel7.x86_64.rpm
    postgresql10-libs-10.4-1PGDG.rhel7.x86_64.rpm
    postgresql10-server-10.4-1PGDG.rhel7.x86_64.rpm

    download.sh:

    1
    2
    3
    4
    5
    6
    7
    wget https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-10.7-1PGDG.rhel7.x86_64.rpm

    wget https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-contrib-10.7-1PGDG.rhel7.x86_64.rpm

    wget https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-libs-10.7-1PGDG.rhel7.x86_64.rpm

    wget https://yum.postgresql.org/10/redhat/rhel-7-x86_64/postgresql10-server-10.7-1PGDG.rhel7.x86_64.rpm

    安装

    1
    rpm -ivh *.rpm

    初始化数据库

    默认数据目录: /var/lib/pgsql/10/data/

    1
    /usr/pgsql-10/bin/postgresql-10-setup initdb

    自定义目录

    1
    2
    3
    4
    5
    mkdir -p /opt/PostgreSQL/data
    chmod 755 -R /opt/PostgreSQL/data
    chown postgres:postgres -R /opt/PostgreSQL
    su postgres
    /usr/pgsql-10/bin/initdb --encoding=UTF-8 --local=zh_CN.UTF8 --username=postgres --pwprompt --pgdata=/opt/PostgreSQL/data

    修改service环境变量

    修改Environment:PGDATA的数据目录为/opt/PostgreSQL/data

    1
    2
    vim /usr/lib/systemd/system/postgresql-10.service
    systemctl daemon-reload

    修改postgres用户的环境变量PGDATA

    1
    2
    su postgres
    vi ~/.bash_profile

    启动

    1
    2
    3
    4
    5
    6
    # 启动
    systemctl start postgresql-10.service
    # 开机启动
    systemctl enable postgresql-10.service
    # 关闭开机启动
    systemctl disable postgresql-10.service

    登录

    1
    2
    su postgres
    psql -U postgres

    查看当前数据目录

    1
    2
    3
    4
    show data_directory;
    ----------------------
    /opt/PostgreSQL/data
    (1 row)

    修改密码

    1
    2
    postgres=# \password
    ALTER USER postgres WITH PASSWORD 'xxxxx';

    数据库登录权限设置

    vim $PGDATA/pg_hba.conf 权限相关配置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # TYPE  DATABASE        USER            ADDRESS                 METHOD

    # "local" is for Unix domain socket connections only
    local all all md5
    # IPv4 local connections:
    #host all all 127.0.0.1/32 trust
    host all all 0.0.0.0/0 md5
    # IPv6 local connections:
    #host all all ::1/128 trust
    host all all ::0/0 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    #local replication all trust
    #host replication all 127.0.0.1/32 trust
    #host replication all ::1/128 trust
    host replication repl slave trust

    设置trust,本地可以使用psql -U postgres直接登录服务器
    设置peer,本地可以使用 psql -h 127.0.0.1 -d postgres -U postgres 直接登录服务器
    设置password,使用用户名密码登录

    $PGDATA/postgresql.conf 数据库相关配置

    1
    2
    listen_addresses = '*'
    posrt = 5432

    设置监听任意IP, 允许任意ip连接数据库
    更多权限说明,见官方文档

    新建superAdmin

    1
    2
    3
    4
    createuser -P -s -e sonar
    Enter password for new role: sonar
    Enter it again: sonar
    CREATE ROLE joe PASSWORD 'md5b5f5ba1a423792b526f799ae4eb3d59e' SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN;

    其它pgsql命令

    要以 SSL 模式连接,可以像下面这样:

    1
    psql -U user -h host "dbname=db sslmode=require"

    切换到另一个数据库

    当连接上一个数据库后,还可以切换到另一个数据库上,甚至使用不同的用户进行切换。一旦切换连接,当前的连接将被关闭。

    1
    \c dbname username

    如果省略 username,将使用当前用户。

    1
    2
    3
    4
    sjk66=# \c postgres
    用户 postgres 的口令:
    您现在已经连接到数据库 "postgres",用户 "postgres".
    postgres=#

    列出所有可用的数据库

    要列出当前服务器上,所有的数据库,可以使用 \l 命令:

    1
    \l

    列出所有可用的表

    要列出当前数据库中,所有的表,可以使用 \dt 命令:

    1
    \dt

    描述表

    要获取表的描述,诸如字段、数据库类型等,可以使用以下命令:

    1
    \d table_name

    列出所有可用的 schema

    1
    \dn

    列出所有可用的函数

    1
    \df

    列出所有视图

    1
    \du

    再次执行上一个命令

    1
    \g

    查看命令记录

    1
    \s

    如果要将命令记录保存到一个文件中,可以:

    1
    \s 文件名

    获取帮助

    获取所有可用的 psql 命令:

    1
    \?

    查看某个 PostgreSQL 语句的帮助信息:

    1
    \h 语句

    比如:

    1
    \h CREATE TABLE

    开启查询执行时间

    要开启查询执行时间功能, 使用 \timing 命令:

    1
    \timing

    再次执行该命令,会把该功能关闭。

    使用编辑器编辑命令

    1
    \e

    psql

    psql

    更常用的情景是,使用编辑器来编辑函数:

    1
    \ef [函数名]

    切换输出选项

    \a:将字段对齐输出切换为不对齐输出

    \H:将使用 HTML 格式输出

    退出 psql

    1
    \q

    postgres=# \du

    参考文章:

    https://pg.sjk66.com/postgresql/psql.html

    https://docs.postgresql.tw/reference/client-applications/createuser

    文章目录
    1. 1. 准备RPM包
    2. 2. 安装
    3. 3. 初始化数据库
    4. 4. 修改service环境变量
  • 启动
    1. 1. 登录
    2. 2. 查看当前数据目录
    3. 3. 修改密码
  • 数据库登录权限设置
    1. 1. 新建superAdmin
    2. 2. 其它pgsql命令
      1. 2.1. 切换到另一个数据库
      2. 2.2. 列出所有可用的数据库
      3. 2.3. 列出所有可用的表
      4. 2.4. 描述表
      5. 2.5. 列出所有可用的 schema
      6. 2.6. 列出所有可用的函数
      7. 2.7. 列出所有视图
      8. 2.8. 再次执行上一个命令
      9. 2.9. 查看命令记录
      10. 2.10. 获取帮助
      11. 2.11. 开启查询执行时间
      12. 2.12. 使用编辑器编辑命令
      13. 2.13. 切换输出选项
      14. 2.14. 退出 psql