zoukankan      html  css  js  c++  java
  • PostgreSQL新手上路PG::ConnectionBad (FATAL: Peer authentication failed

    部署完的新机器报错

    App 12595 stderr: PG::ConnectionBad (FATAL:  Peer authentication failed for user "dbuser"
    App 12595 stderr: ):

    上网查了一下,很多帖子上都在说要修改/etc/postgresql/9.4/main/pg_hba.conf这个文件,然而并没有什么用

    回忆一下整个数据库搭建过程

    (1)创建数据库用户dbuser,并指定其为超级用户

    sudo -u postgres createuser --superuser dbuser

    (2)创建数据库uppers_staging, 并指定所有者为dbuser

    sudo -u postgres createdb -O dbuser uppers_staging

    (3)给dbuser设置登录密码(之前没设置密码的时候登录报这个错psql: fe_sendauth: no password supplied,设置了就ok了)

    root@i-1lb6pxls:/home/ubuntu/campo/shared# sudo -u postgres psql
    psql (9.4.4)
    Type "help" for help.
    
    postgres=# password dbuser
    Enter new password: 
    Enter it again: 
    postgres=# q

    (4)登录查看下数据库

    root@i-1lb6pxls:/home/ubuntu/campo/current# psql -U dbuser -d uppers_staging -h 127.0.0.1 
    Password for user dbuser: 
    psql (9.4.4)
    SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    uppers_staging=> l
                                          List of databases
            Name        |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    --------------------+----------+----------+-------------+-------------+-----------------------
     postgres           | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                        |          |          |             |             | postgres=CTc/postgres
     template1          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                        |          |          |             |             | postgres=CTc/postgres
     uppers_development | root     | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     uppers_staging     | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 

    dbuser的权限

    uppers_staging=> du
                                 List of roles
     Role name |                   Attributes                   | Member of 
    -----------+------------------------------------------------+-----------
     dbuser    |                                                | {}
     postgres  | Superuser, Create role, Create DB, Replication | {}
     root      | Superuser, Create role, Create DB              | {}

    接下来需要讲数据库uppers_staging 的所有权限都赋给dbuser,否则dbuser只能登录控制台,没有操作数据库的权限

     GRANT ALL PRIVILEGES ON DATABASE uppers_staging to dbuser;

     这时候再来看一下数据库列表

    uppers_staging=> l
                                          List of databases
            Name        |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    --------------------+----------+----------+-------------+-------------+-----------------------
     postgres           | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                        |          |          |             |             | postgres=CTc/postgres
     template1          | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                        |          |          |             |             | postgres=CTc/postgres
     uppers_development | root     | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     uppers_staging     | dbuser   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =Tc/dbuser           +
                        |          |          |             |             | dbuser=CTc/dbuser

    报错的原因其实就是没有授权 @_@

    常见的数据库操作命令如下

    h:查看SQL命令的解释,比如h select。
    ?:查看psql命令列表。
    l:列出所有数据库。
    c [database_name]:连接其他数据库。
    d:列出当前数据库的所有表格。
    d [table_name]:列出某一张表格的结构。
    du:列出所有用户。
    e:打开文本编辑器。
    conninfo:列出当前数据库和连接的信息。
  • 相关阅读:
    Random简介
    十道海量数据处理面试题
    Django models 的字段类型
    执行monkey APK 制作
    MTK平台-抓取蓝牙log
    超级硬件代理解决企业Web提速上网问题
    Red Hat Linux 安装 (本地、网络安装)
    由安装两块网卡的linux系统中引起网络不通想到的
    Linux企业应用--RHAS 2.1 下安装中文 Lotus Domino R 6.5 图解
    巧用Linux 架设TFTP Server备份路由器的配置文件
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/4758148.html
Copyright © 2011-2022 走看看