You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyCharm中通过SSH隧道连接PythonAnywhere MySQL报2003错误求助

解决PythonAnywhere MySQL连接错误(SSH隧道场景)

核心问题分析

你遇到的%u format: a real number is required, not str错误,本质是连接参数的配置或类型不符合要求,结合SSH隧道场景,主要有两个常见诱因:

1. 未使用SSH隧道的本地转发地址

用SSH隧道连接PythonAnywhere MySQL时,不能直接填写远程MySQL的host地址,必须连接隧道在本地映射的回环地址:

  • host需设为127.0.0.1
  • port需填写你在PyCharm SSH隧道中配置的本地转发端口(比如33060,而非远程MySQL的3306)

2. 端口参数类型错误

确保port参数是整数类型,不要用字符串包裹(比如port=33060而非port="33060"),旧版mysql-connector对参数类型校验严格,字符串端口会触发格式化错误。

修正后的连接代码示例

import mysql.connector

cnx = mysql.connector.connect(
    host="127.0.0.1",  # 改用本地隧道映射地址
    user="你的PythonAnywhere用户名",
    port=33060,  # 替换为你在PyCharm中设置的本地转发端口
    password="你的MySQL密码",
    database="你的数据库名(格式:用户名$数据库名)"
)

额外排查步骤

  • 确认PyCharm的SSH隧道已启动:在Tools > SSH Sessions中查看隧道状态,确保本地端口已成功转发到远程MySQL的xxx.mysql.eu.pythonanywhere-services.com:3306
  • 升级mysql-connector-python:执行pip install --upgrade mysql-connector-python,旧版本存在格式化字符串的bug,升级后可解决部分参数兼容问题
  • 验证数据库名格式:PythonAnywhere的数据库名必须是用户名$数据库名格式(比如john$my_db),不要遗漏$符号

内容的提问来源于stack exchange,提问作者S--

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:31:12