• postgresql常用操作指令


    一.查看pg的操作命令

    首先在linux命令行登录pg,postgres是pg的默认用户

    psql -h localhost -p 5432 -U postgres
    
    • 1

    查看有哪些用户

    \dg
    
    • 1

    查看有哪些数据库

    \l
    
    • 1

    查看数据库有哪些模式(schema)

    \dn
    
    • 1

    查看有哪些表

    \d
    
    • 1

    切换数据库

    \c dnname
    
    • 1

    例如切换为数据库test,则使用命令

    \c test
    
    • 1

    切换用户(切换postgres用户)

    \c - postgres
    
    • 1

    创建pg用户

    CREATE USER test WITH PASSWORD 'password';
    
    • 1

    修改数据库所属的用户

    alter database "YOUR_DATABASE" owner to "YOUR_USER";
    
    • 1

    给用户赋予数据库权限

    grant all on database databaseName to username
    
    • 1

    修改schema所属用户

    alter schema test owner to postgres;
    
    • 1

    二.linux命令行

    基于linux命令行创建postgresql用户,createuser命令用法可通过createuser --help查看

    createuser -h localhost -U postgres -s -P -e test
    
    • 1

    #基于linux命令行创建数据库,createdb 命令用法可通过createdb --help查看

    createdb -h localhost -p 5432 -e -U test Privilege -E UTF-8

    在linux命令行对数据库进行授权

    psql -h localhost -p 5432 -U postgres -c "grant all privileges on database Privilege to rbac"
    
    • 1

    基于linux命令行导入sql文件数据到指定数据库,数据库通过-d参数进行指定。

    psql -h localhost -p 5432 -U test -d Privilege -f privilege.sql
    
    • 1

    指定psql以用户rbac访问数据库Privilege,非postgres用户登录pg需要指定数据库,通过-d参数指定。

    psql -h localhost -p 5432 -U rbac -d Privilege
    
    • 1

    postgresql报表不存在,原因是我指定的数据库是Privilege,但由于psql默认为大小写不敏感的,所以创建时变成了privilege了,这个库里面没有表存在;而同时还存在一个Privilege,它里面是有表的,所以我一直以为程序访问的是Privilege,但实际上访问的却是privilege,它里面还没有表,创建了表之后就好啦。

  • 相关阅读:
    PTA 7-217 在数组中查找1
    2021Java面试题及答案整理(最新汇总版)
    AOP实现接口加密
    java 代码块(静态代码块、局部代码块、构造代码块)
    CPU密集型和IO密集型任务的权衡:如何找到最佳平衡点
    重新安装 Windows 10 后如何恢复丢失的数据?
    力扣刷题day48|583两个字符串的删除操作、72编辑距离
    README.md文件使用
    【无标题】
    Spring Cloud Function现RCE 0-day漏洞
  • 原文地址:https://blog.csdn.net/weixin_42232931/article/details/128053893