2016-04-28 19 views
2

私はcaravelをCitusDBで使用しており、データベースノードへの接続に問題があります。率直に言えば、何をすべきかわからない。SQL-alchemyでCitusDBを使用する

私はinstallation instructionsの公式に従ってインストールして実行しました。

psqlスクリプトを使用して実行中のマスターにログインできますが、/opt/citusdb/4.0/binにありますが、アプリケーションから接続できません。 Flask-SQLAlchemyはpostgresqlの方言とドライバをサポートしており、実行中のサーバは5432ポートにあるようです。私はpsycopg2で試しています。

postgresqlサービスがマスターノードの起動を妨げていたため、サービスを無効にしました。

これは誤りである:すべての

2016-04-28 10:10:53,487:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (psycopg2.OperationalError) could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 

答えて

2

まず、私は強くCitus 5.0を使用してお勧めします。あなたが追ってきたドキュメントはPostgreSQLのフォークであったCitusDB 4.0バージョンについてです。現在、CitusはPostgreSQL 9.5の拡張機能としてインストールすることができ、多くの新機能とバグ修正があります。 5.0についてはCitus installation instructionsをご覧ください。

Citus 5.0に切り替えることができない場合、問題はソケットファイルのパスに関連している可能性があります。コマンドin this answerを発行してみることができますか?

1

@Ahmet Eren Başakのおかげで、私は新しい角度から問題を見ることができました。

この問題の鍵は、実行中のサーバーのpidファイルです。 psycopg2およびpostgresqlは、通常、サーバーが稼動しているかどうかを確認するために/var/run/postgresql/ディレクトリを参照してください。 CitusDBにはこのディレクトリのファイルを編集/作成する権限がありません。したがって、pidファイルは/tmp/に作成されます。

ソリューション

/var/run/postgresql/にこのファイルをリンクした、それは私はこれが実際にCitus 4.0ビルドで問題としてそんなに権限の問題でわからないんだけど、それ

ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432 
+1

を解決しました。 '/ tmp'をすべてのプラットフォームで使うことができますが、"通常の "PostgreSQLのインストールでは特定のプラットフォームで'/var/run/postgresql'を使用します。 Citus 5.0以降ではこの問題はまったくなくなりましたが、回避策が見つかっています。 – jasonmp85

関連する問題