2017-03-02 10 views
0

连接的Postgres在CentOS我已经下载在CentOS的Postgres,创建了一个数据库,创建了用户密码,重新启动的Postgres,检查了pg_authid用户,做了一遍,而且我还可以”连接。不能与psycopg

为什么我不能连接?

postgres=# create database test; 
CREATE DATABASE 
postgres=# create user test with password 'test'; 
CREATE ROLE 
postgres=# grant all privileges on database test to test; 
GRANT 
postgres=# select * from pg_authid where rolname = 'test'; 
rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolreplication | rolconnlimit |    rolpassword    | rolvaliduntil 
---------+----------+------------+---------------+-------------+--------------+-------------+----------------+--------------+-------------------------------------+--------------- 
test | f  | t   | f    | f   | f   | t   | f    |   -1 | md505a671c66aefea124cc08b76ea6d30bb | 
(1 row) 
postgres=# alter user test with password 'test'; 
ALTER ROLE 

在这之中,我已经sudo service postgresql restart多次,但我仍然得到这个:

>>> conn = psycopg2.connect(host="127.0.0.1", port="5432", dbname="test", user="test", password="test") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib64/python2.7/site-packages/psycopg2/__init__.py", line 130, in connect 
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync) 
psycopg2.OperationalError: FATAL: Ident authentication failed for user "test" 

我的想法:(

编辑:

我也试过改变

# "local" is for Unix domain socket connections only 
local all    all          peer 

# "local" is for Unix domain socket connections only 
local all    all          trust 

回答

1

不得不改变pg_hba.conf配置到这一点:

# TYPE DATABASE  USER   ADDRESS     METHOD 

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