【问题标题】:SQLAlchemy (psycopg2.OperationalError) fe_sendauth: no password supplied [closed]SQLAlchemy(psycopg2.OperationalError)fe_sendauth:没有提供密码[关闭]
【发布时间】:2016-05-19 13:00:34
【问题描述】:

我在尝试使用 sqlalchemy 连接到 postgres 数据库时遇到此身份验证问题。 这就是我的连接方式:

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 

【问题讨论】:

  • 尝试删除 URL 中的一个斜杠?它应该只有两个斜杠 (//) 而不是三个 (///)。

标签: python database postgresql sqlalchemy


【解决方案1】:

作为@univeriocommented,问题出在连接url的结构上。

标准的url结构是

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

网址

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 2014-05-07
    • 2013-08-02
    • 2016-01-16
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    相关资源
    最近更新 更多