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

使用PyMySQL连接公司SQL Server:Windows身份验证适配问题

适配SQL Server Windows身份验证的连接方案

你当前用的pymysql是专门连接MySQL的库,要连SQL Server得换用pyodbc(对Windows身份验证支持更友好),具体步骤如下:

1. 安装依赖库

先安装pyodbc和配套工具,确保读写Excel的功能正常:

pip install pyodbc pandas openpyxl

2. 编写Windows身份验证的连接代码

方式一:直接用连接字符串(无需配置ODBC数据源)

这是最常用的方式,直接指定SQL Server信息,通过Trusted_Connection=yes启用Windows身份验证:

import pandas as pd
import pyodbc

# 替换成你的服务器名和数据库名
conn_str = (
    r'DRIVER={ODBC Driver 17 for SQL Server};'
    r'SERVER=你的SQL服务器名;'  # 示例:localhost 或者 192.168.1.100\SQLEXPRESS
    r'DATABASE=你的数据库名;'
    r'Trusted_Connection=yes;'
)

# 建立连接
con = pyodbc.connect(conn_str)

# 读取数据到DataFrame
df = pd.read_sql("SELECT * FROM 你的目标表名", con)

# 打印数据
print(df)

# 导出到Excel(openpyxl支持xlsx格式,避免xls的行数限制)
df.to_excel('导出数据.xlsx', index=False, engine='openpyxl')

# 关闭连接
con.close()

方式二:使用已配置的ODBC数据源

如果你已经在Windows系统里配置了带Windows身份验证的ODBC数据源,可以直接用DSN连接:

import pandas as pd
import pyodbc

# 替换成你配置的ODBC数据源名称
con = pyodbc.connect('DSN=你的ODBC数据源名;Trusted_Connection=yes;')

# 后续读取、导出代码和上面一致
df = pd.read_sql("SELECT * FROM 你的目标表名", con)
print(df)
df.to_excel('导出数据.xlsx', index=False, engine='openpyxl')
con.close()

注意事项

  • 确保你的Windows账号拥有目标SQL Server数据库的访问权限
  • ODBC驱动版本要匹配SQL Server版本,推荐用ODBC Driver 17 for SQL Server(兼容性最优)
  • pd.read_sql是pandas当前推荐的用法,替代了旧的pandas.io.sql.read_sql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:42