文章目录
  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包

    下载地址

    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:

    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
    

    安装

    rpm -ivh *.rpm
    

    初始化数据库

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

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

    自定义目录

    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

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

    修改postgres用户的环境变量PGDATA

    su postgres
    vi ~/.bash_profile
    

    启动

    # 启动
    systemctl start postgresql-10.service
    # 开机启动
    systemctl enable postgresql-10.service
    # 关闭开机启动
    systemctl disable postgresql-10.service
    

    登录

    su postgres
    psql -U postgres
    

    查看当前数据目录

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

    修改密码

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

    数据库登录权限设置

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

    # 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 数据库相关配置

    listen_addresses = '*'
    posrt = 5432
    

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

    新建superAdmin

    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 模式连接,可以像下面这样:

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

    切换到另一个数据库

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

    \c dbname username
    

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

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

    列出所有可用的数据库

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

    \l
    

    列出所有可用的表

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

    \dt
    

    描述表

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

    \d table_name
    

    列出所有可用的 schema

    \dn
    

    列出所有可用的函数

    \df
    

    列出所有视图

    \du
    

    再次执行上一个命令

    \g
    

    查看命令记录

    \s
    

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

    \s 文件名
    

    获取帮助

    获取所有可用的 psql 命令:

    \?
    

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

    \h 语句
    

    比如:

    \h CREATE TABLE
    

    开启查询执行时间

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

    \timing 
    

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

    使用编辑器编辑命令

    \e
    

    psql

    psql

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

    \ef [函数名]
    

    切换输出选项

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

    \H:将使用 HTML 格式输出

    退出 psql

    \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