首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python mod_wsgi数据库连接不工作

Python mod_wsgi数据库连接不工作
EN

Stack Overflow用户
提问于 2014-04-07 23:04:12
回答 1查看 1.1K关注 0票数 1

我在centos系统上安装了Postgres、mod_wsgi和python3.5。我已经测试了连接,它在交互式Python和开发应用程序中都运行良好(它是一个金字塔应用程序,因此它是开发服务器)。

我得到了以下错误:

代码语言:javascript
复制
postgresql.exceptions.ClientCannotConnectError: could not establish connection to server
  CODE: 08001
  LOCATION: CLIENT
CONNECTION: [failed]
  failures[0]:
    socket('127.0.0.1', 5432)
    Traceback (most recent call last):
      File "/var/www/wsgi/lib/python3.3/site-packages/postgresql/protocol/client3.py", line 136, in connect
        self.socket = self.socket_factory(timeout = timeout)
      File "/var/www/wsgi/lib/python3.3/site-packages/postgresql/python/socket.py", line 64, in __call__
        s.connect(self.socket_connect)
    PermissionError: [Errno 13] Permission denied
    The above exception was the direct cause of the following exception:
    postgresql.exceptions.ConnectionRejectionError: Permission denied
      CODE: 08004
      LOCATION: CLIENT
CONNECTOR: [Host] pq://username:***@localhost:5432/db_name
  category: None
DRIVER: postgresql.driver.pq3.Driver

我花了一些时间查看mod_wsgi文档,发现有一个套接字可能出现的问题。但是,我已经实现了该更改(而apache的相应错误消失了)。

我的假设是,它仍然是一个套接字错误,因为在相同的Python中,甚至在dev安装程序中,连接针在其他地方都能正常工作。

有人能从这里指出正确的方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-09 01:00:13

即使您将数据库连接字符串设置为IP地址,如果是127.0.0.1,我也遇到了PostgreSQL数据库连接器,这些连接器将尝试优化并通过本地UNIX进行连接。如果您的代码在mod_wsgi中运行的用户无法访问该UNIX来访问PostgreSQL,则会出现权限错误导致失败。

我不记得用py-postgresql模块看过它,但几周前我确实使用了PostgreSQL数据库模块的on来实现它。

尝试用实际主机名或正确的IP地址替换127.0.0.1。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22924717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档