Strato环境下Python连接MySQL数据库失败求助
Strato虚拟主机中Python连接MySQL报错的解决思路
问题情况
- 域名/虚拟主机由Strato托管,Python脚本可正常执行,但在Strato环境中连接MySQL时出现报错:
2003: Can't connect to MySQL server on 'rdbms.strato.de:3306' (113 No route to host),本地Windows 10开发环境连接正常。 - 使用Python版本:
3.8.8
相关代码
.... import mysql.connector .... try: db_link = mysql.connector.connect( host = "rdbms.strato.de", user = "xxxx", passwd = "yyyy" ) except Exception as e: print("The error raised is: ", e) return ....
解决思路
- 替换数据库连接地址:Strato虚拟主机通常限制内部访问数据库只能用
localhost或其提供的内部私有地址,而非公网域名rdbms.strato.de,尝试将host参数改为localhost或Strato后台给出的内部数据库地址。 - 检查用户访问权限:确认你的MySQL用户是否被授权从Strato虚拟主机的IP/主机连接,部分用户仅开放了本地开发IP的访问权限,需在Strato数据库管理面板中更新用户的授权范围(如设置为
%或对应内部主机标识)。 - 测试端口连通性:在Strato主机上执行
telnet rdbms.strato.de 3306或nc -zv rdbms.strato.de 3306,验证3306端口是否能连通,不通则说明是Strato防火墙或内部网络规则拦截了请求。 - 更新依赖版本:Strato环境中的
mysql.connector版本可能存在兼容性问题,执行pip install --upgrade mysql-connector-python升级到适配版本。 - 确认数据库服务状态:登录Strato管理后台,检查数据库实例是否正常运行,无暂停、异常等状态。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

