web-dev-qa-db-ja.com

SQLAlchemyパスワードが提供されていませんエラー

これはおそらくばかげたエラーですが、満足のいく解決策を見つけることができないようです。

db.create_all()を実行すると、次のエラーが発生しました。

sqlalchemy.exc.OperationalError: (OperationalError) fe_sendauth: no password supplied  None None

私のデータベースリンクは次のように設定されています

'postgresql://localhost/db_name'

これは私のMacとHerokuでは問題なく機能しましたが、ubuntu(digitalocean)では問題ありません。

私が間違っている可能性のあるアイデアはありますか?

35
yifanwu

接続文字列から「localhost」を削除する必要があるでしょう。

'postgresql:///db_name'

これにより、psycopg2はUnixドメインソケットを使用するようになります。デフォルトの構成では「ident」が使用されるため、スクリプトを実行するユーザーとして接続します。デフォルト設定では、「md5」はTCP接続にのみ適用されます。

58
Danny W. Adair

URLパターンは次のとおりです。

postgresql://user:password@localhost:5432/database_name

pip install psycopg2
ユーザーは、postgresまたは作成して使用する他のユーザーである必要があります

mySqlの場合も同様です:

mysql://user:pass@localhost:3306/database_name

pip install mysql-python

18

Macでは、PostgreSQLはlocalhostからの接続のtrustまたはpeer認証用に設定されています。

Ubuntuボックスでは、md5 localhostからの接続の認証。

パスワードを設定するか、認証モードを変更する必要があります。見る - pg_hba.conf 、および PostgreSQLのUbuntuガイド

4
Craig Ringer