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

dee*_*eko 3 django postgresql

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

无法连接到服务器:权限被拒绝服务器是否在主机"remote ip"上运行并接受端口port_number上的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', 
}
Run Code Online (Sandbox Code Playgroud)

Lyc*_*cha 8

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

setsebool httpd_can_network_connect_db
Run Code Online (Sandbox Code Playgroud)

这里有更详细的说明.


Xav*_*CLL 5

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

setsebool -P httpd_can_network_connect_db on
Run Code Online (Sandbox Code Playgroud)

在这里阅读更多