我有一个奇怪的问题。我可以从命令行使用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',
}
答案 0 :(得分:8)
根据您的描述,这与Apache及其访问数据库的权限有关。您没有提到您使用的操作系统,但如果它正在运行SELinux,则默认规则会阻止apache连接到db。如果是这种情况,您可以通过运行:
暂时启用它setsebool httpd_can_network_connect_db
Here是更详细的说明。
答案 1 :(得分:5)
答案 2 :(得分:0)
在CentOs上测试。
service httpd stop
service postgresql stop
setsebool -P httpd_can_network_connect 1
service httpd start
service postgresql start