Python通过ODBC连接MySQL数据库报错,pyodbc调用失败求解决方案
问题根源
你当前使用的ODBC Driver 17 for SQL Server是微软SQL Server数据库的专用ODBC驱动,完全不兼容MySQL数据库,这是报错的核心原因。报错信息中所有提示均指向连接SQL Server失败,说明驱动根本没有识别到你要连接的目标是MySQL。
解决步骤
- 安装MySQL专属ODBC驱动
下载并安装和你Python位数(32位/64位)一致的MySQL ODBC Connector,安装完成后可通过Windows ODBC数据源管理器的「驱动」标签页确认驱动名称。 - 修正代码中的连接配置
- 替换驱动名为MySQL对应的ODBC驱动名,8.0版本通常为
MySQL ODBC 8.0 Unicode Driver - 修正服务器地址配置,本地MySQL默认地址为
localhost或127.0.0.1,不要填服务管理器里的显示名 - 补充MySQL默认端口3306(如果自定义过端口就替换为你自己的端口)
修改后可运行代码示例
import pyodbc # 配置项请根据你实际安装的驱动和MySQL配置调整 driver = '{MySQL ODBC 8.0 Unicode Driver}' server = '127.0.0.1' port = '3306' database = 'tarsdb' username = 'root' password = '1234' # 拼接连接字符串 conx = pyodbc.connect(f'''DRIVER={driver}; SERVER={server}; PORT={port}; DATABASE={database}; UID={username}; PWD={password};''') # 创建游标 cursor = conx.cursor()
额外注意事项
- 驱动名必须和ODBC数据源管理器中显示的完全一致,包括空格和版本号,否则会出现找不到驱动的报错
- 不需要配置
Trusted_Connection参数,该参数为SQL Server专属的Windows身份验证配置,对MySQL无效 - 不需要将MySQL文件移动到脚本目录,正常配置驱动和连接参数即可完成连接
内容的提问来源于stack exchange,提问作者Pluto
相关产品推荐
相关产品推荐

