如何在PythonAnywhere中远程连接PostgreSQL数据库?
PythonAnywhere远程连接PostgreSQL配置问题解决方法
核心问题分析
PythonAnywhere对外部数据库连接有网络限制,且远程PostgreSQL连接通常需要SSL验证,你的现有配置缺少必要的SSL参数,同时可能存在数据库端的访问权限问题。
具体解决步骤
调整数据库端配置
- 登录PostgreSQL服务器,修改
pg_hba.conf文件,添加允许PythonAnywhere出口IP段的访问规则(可在PythonAnywhere终端执行curl ifconfig.me获取当前出口IP)。 - 修改
postgresql.conf文件,将listen_addresses设置为'*'(或指定PythonAnywhere的IP),重启PostgreSQL服务。 - 确保服务器防火墙开放5432端口,允许外部访问。
- 登录PostgreSQL服务器,修改
更新Django数据库配置
为连接添加SSL强制验证参数,修改后的配置如下:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'fontenariaguivala', 'USER': 'postgres', 'PASSWORD': '**********', 'HOST': 'mayhoste.com', 'PORT': '5432', 'OPTIONS': { 'sslmode': 'require', }, } }验证基础连接
在PythonAnywhere终端执行以下命令测试网络连通性,排除Django层面的问题:psql -h mayhoste.com -p 5432 -U postgres -d fontenariaguivala输入密码后若能正常进入数据库,说明网络和权限配置正常,再重启Django应用即可。
注意PythonAnywhere权限限制
免费版用户的外部网络连接有严格限制,若上述操作无效,可考虑升级至付费版,或改用PythonAnywhere自带的PostgreSQL服务。
内容的提问来源于stack exchange,提问作者Quetions
相关产品推荐
相关产品推荐

