这可能是一个愚蠢的错误,但我似乎找不到令人满意的解决方案。
运行db.create_all()
时,出现以下错误。
sqlalchemy.exc.OperationalError: (OperationalError) fe_sendauth: no password supplied None None
我的数据库链接设置为
'postgresql://localhost/db_name'
这在我的Mac和Heroku上运行良好,但在ubuntu(digitalocean)上运行不正常。
任何想法我可能做错了什么?
答案 0 :(得分:52)
你可能只需要删除" localhost"来自您的连接字符串:
'postgresql:///db_name'
告诉psycopg2使用Unix域套接字。您的默认配置将使用" ident"因此,您将以运行脚本的用户身份进行连接。在默认配置中," md5"仅适用于TCP连接。
答案 1 :(得分:15)
网址格式应为:
postgresql://user:password@localhost:5432/database_name
pip install psycopg2
用户应该是postgres或您已创建并打算使用的任何其他用户
同样适用于mySql:
mysql://user:pass@localhost:3306/database_name
pip install mysql-python
答案 2 :(得分:4)
在Mac上,PostgreSQL设置为trust
或peer
身份验证来验证来自localhost的连接。
在您的Ubuntu框中,它为来自localhost的连接设置了md5
身份验证。
您需要配置密码或更改身份验证模式。请参阅pg_hba.conf
和Ubuntu guide for PostgreSQL。
答案 3 :(得分:4)
以下为我工作。您与postgres数据库的连接需要密码;因此,下面是您应该写的内容。
fromEvent
答案 4 :(得分:0)
首先确保数据库服务器已连接,然后再次运行该命令。愚蠢的,但它对我有用。
答案 5 :(得分:-1)
对于远程服务器
postgresql://<username>:<password>@<ipaddress>:<port>/<database>
本地配置使用
postgressql:///<database>