我有一个奇怪的问题.我可以从命令行使用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)
根据您的描述,这与Apache及其访问数据库的权限有关.您没有提到您使用的操作系统,但如果它正在运行SELinux,则默认规则会阻止apache连接到db.如果是这种情况,您可以通过运行以下命令暂时启用它:
setsebool httpd_can_network_connect_db
Run Code Online (Sandbox Code Playgroud)
这里有更详细的说明.
要在重新启动后进行更改(在Centos上测试):
setsebool -P httpd_can_network_connect_db on
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多
| 归档时间: |
|
| 查看次数: |
3663 次 |
| 最近记录: |