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

Python使用mysql.connector连接MySQL报错2003无法连接服务器求助

问题根因

你遇到的报错由两个核心错误导致:

  1. 你使用的host格式server-server.dev.company.com\IN11是SQL Server的实例命名规则,MySQL本身不支持「反斜杠+实例名」的主机写法,MySQL仅通过「主机地址+端口」定位服务,且Python字符串中的反斜杠属于转义字符,会导致参数解析异常。
  2. 报错提示%u format: a number is required, not str说明端口参数被传入了字符串类型的值,或是host解析异常后将非法内容识别为端口参数,触发类型校验失败。

你修改其他参数仍报相同错误的原因是:参数解析在校验host和port阶段就已经失败,还没走到实际发起网络连接的步骤,所以修改账号、库名等其他参数不会改变报错结果。

解决思路

先确认你要连接的数据库类型,对应选择解决方案:

方案1:目标库为MySQL

  • 第一步:删除host参数中的\IN11后缀,仅保留纯主机地址server-server.dev.company.com
  • 第二步:补充端口参数port,值为数字类型,不要加引号,默认MySQL端口为3306,示例代码:
import mysql.connector

cnx = mysql.connector.connect(
    user='替换为实际用户名',
    password='替换为实际密码',
    host='server-server.dev.company.com',
    port=3306, # 替换为实际MySQL服务端口,必须为数字类型
    database='替换为实际库名'
)
cnx.close()
  • 第三步:如果仍连接失败,可先通过本地MySQL客户端工具测试目标主机端口的连通性,排除网络、账号权限等问题。

方案2:目标库为SQL Server(符合你当前使用的实例名格式)

你选错了连接库,MySQL连接库无法连接SQL Server,替换为pyodbc或pymssql库即可,示例pyodbc连接代码:

import pyodbc

# 注意字符串前加r避免反斜杠转义
cnx = pyodbc.connect(r'DRIVER={ODBC Driver 17 for SQL Server};SERVER=server-server.dev.company.com\IN11;DATABASE=替换为实际库名;UID=替换为实际用户名;PWD=替换为实际密码')
cnx.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:15:00