Django连接cPanel远程MySQL时报错无法连接localhost如何解决
Django连接cPanel远程MySQL报错解决方法
1. 确认DATABASES配置参数正确
打开项目的settings.py文件,检查数据库配置是否和你用MySQL Workbench连接时的参数完全一致,参考配置结构如下:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'cPanel账户前缀_自定义数据库名', # cPanel默认会给所有数据库名加上账户前缀 'USER': 'cPanel账户前缀_自定义数据库用户名', # 数据库用户名同样带账户前缀 'PASSWORD': '你设置的数据库用户密码', 'HOST': 'cPanel服务器公网IP/绑定的域名', # 此处不能填写localhost/127.0.0.1 'PORT': '3306', # cPanel未修改端口的情况下保留默认值即可 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", }, } }
注意:HOST参数必须填写你用MySQL Workbench连接时使用的远程服务器地址,绝对不能使用localhost、127.0.0.1或者留空,否则Django会默认尝试连接本地数据库
2. 排查配置生效问题
- 确认你修改的是当前运行环境加载的
settings.py文件,多环境拆分配置的场景下,容易出现改了开发配置、生产环境仍读取旧的localhost配置的问题 - 修改配置后必须重启Django服务,新配置才会生效
- 可添加临时调试代码确认加载的配置是否正确:
from django.conf import settings print("当前加载的数据库地址:", settings.DATABASES['default']['HOST'])
3. cPanel侧配置检查
- 确认cPanel的「远程MySQL」功能中,已经添加了Django项目所在服务器的公网IP,未添加的IP会被cPanel安全规则拦截
- 确认未开启cPanel的MySQL强制本地连接限制
内容的提问来源于stack exchange,提问作者Achraf El Hadi
相关产品推荐
相关产品推荐

