django无法连接到服务器:权限被拒绝服务器是否在主机上运行并接受端口远程主机上的TCP / IP连接

时间:2011-11-08 20:07:12

标签: django postgresql

我有一个奇怪的问题。我可以从命令行使用psql连接到远程主机,但不能在django设置文件中使用完全相同的凭据。我收到错误:

  

无法连接到服务器:权限被拒绝服务器是否正在运行   在主机“远程IP”和接受端口上的TCP / IP连接   端口号?

如果我可以使用psql连接而不使用django我在这里缺少什么?我还检查了python解释器,我可以加载psycopg2。

我非常感谢任何帮助,因为我在网上找到的并没有帮助。

干杯,

d

这是settings.py

中的db conf
'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', 
        'NAME': '<db name goes here>', # Or path to database file if using sqlite3.
        'USER': '<db user>', # Not used with sqlite3.
        'PASSWORD': '<pswd goes here>', # Not used with sqlite3.
        'HOST': '<remote ip goes here>', 
        'PORT': '5432', 
}

3 个答案:

答案 0 :(得分:8)

根据您的描述,这与Apache及其访问数据库的权限有关。您没有提到您使用的操作系统,但如果它正在运行SELinux,则默认规则会阻止apache连接到db。如果是这种情况,您可以通过运行:

暂时启用它
setsebool httpd_can_network_connect_db

Here是更详细的说明。

答案 1 :(得分:5)

要在重新启动后进行更改(在Centos上测试):

setsebool -P httpd_can_network_connect_db on

了解更多here

答案 2 :(得分:0)

在CentOs上测试。

service httpd stop

service postgresql stop

setsebool -P httpd_can_network_connect 1

service httpd start

service postgresql start