将CitusDB与SQL-alchemy一起使用

时间:2016-04-28 07:38:41

标签: python postgresql flask-sqlalchemy citus

我正在使用CitusDB caravel,我遇到了连接数据库节点的问题。坦率地说,我不知道该怎么做。

我跟随官方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 个答案:

答案 0 :(得分:2)

首先,我强烈建议使用Citus 5.0。您所遵循的文档是关于CitusDB 4.0版本,它是PostgreSQL的一个分支。目前,Citus可以作为PostgreSQL 9.5的扩展安装,并具有许多新功能和错误修正。您可以查看Citus installation instructions获取5.0。

如果无法切换到Citus 5.0,则问题可能与套接字文件路径有关。您可以尝试发出命令in this answer吗?

答案 1 :(得分:1)

感谢@Ahmet Eren Başak我能够从一个新的角度看待问题。

此问题的关键是正在运行的服务器的pid文件。 psycopg2postgresql通常会引用/var/run/postgresql/目录来查看服务器是否正在运行。 CitusDB显然没有在此目录中编辑/创建文件的权限。因此,pid文件是在/tmp/

中创建的

解决方案是将此文件链接到/var/run/postgresql/并解决了它

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