SQLAlchemy(psycopg2.OperationalError)fe_sendauth:未提供密码

7

我在使用SQLAlchemy连接PostgreSQL数据库时遇到了身份验证问题。

这是我的连接方式:

db_url = 'postgresql+psycopg2:///<role>:<pass>@localhost:5432/basketball'
Engine = create_engine(db_url, echo=False)
SessionMaker = ORM.sessionmaker(bind=Engine, autoflush=False)
Session = ORM.scoped_session(SessionMaker)

以下是我如何设置/etc/postgresql/9.3/main/pg_hba.conf

# Database administrative login by Unix domain socket
local   all             postgres                                peer

# 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            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

然后,当我访问数据库时,会收到以下信息:
SQLAlchemy  (psycopg2.OperationalError) fe_sendauth: no password supplied 

4
尝试删除URL中的一个斜杠?它应该只有两个斜杠(//), 而不是三个 (///)。 - univerio
1个回答

0

正如@univerio所评论的那样,问题在于连接URL的结构。

标准的URL结构为

dialect+driver://username:password@host:port/database

网址

db_url = 'postgresql+psycopg2:///<role>:<pass>@localhost:5432/basketball'

描述了一个名为<role>:<pass>@localhost:5432/basketball的Postgresql数据库,没有明确的凭据或主机名定义,因此出现了错误消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接