2016-04-28 89 views
2

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

我跟着官方installation instructions安装并运行。

我可以通过/opt/citusdb/4.0/bin中的psql脚本登录运行的主站,但我无法从应用程序连接到它。 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

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

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

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 
+1

我不知道这其实是一个权限问题这么多,因为与西特斯4.0构建的一个问题。它可以在所有平台上使用'/ tmp',而“常规”PostgreSQL安装则在特定平台上使用'/ var/run/postgresql'。很可能Citus 5.0和更高版本不再有这个问题,但找到解决方法很好! – jasonmp85