将 CitusDB 与 SQL-alchemy 结合使用

Using CitusDB with SQL-alchemy

我正在将 caravel 与 CitusDB 一起使用,但我 运行 遇到了连接到数据库节点的问题。老实说,我不知道该怎么办。

我是跟着官方installation instructions安装和运行.

我可以使用 /opt/citusdb/4.0/bin 中的 psql 脚本登录到 运行ning master,但我无法从应用程序连接到它。 Flask-SQLAlchemy 支持 postgresql 方言和驱动程序,服务器 运行ning 似乎在 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"?

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

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

多亏了@Ahmet Eren Başak,我才能够从新的角度看待问题。

这个问题的关键在于运行服务器的pid文件。 psycopg2postgresql一般都是参考/var/run/postgresql/目录,看服务器是不是运行。 CitusDB 显然没有权限访问此目录中的 edit/create 个文件。因此,pid 文件是在 /tmp/.

中创建的

解决方案是 link 这个文件到 /var/run/postgresql/ 然后解决了它

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