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

使用SQLAlchemy+PyODBC连接MS SQL时参数错乱,连接失败求助

解决MS SQL Server连接参数错乱问题

问题根源

你当前的连接逻辑存在三个关键错误:

  • 连接URL里直接写了变量名字符串(比如Username),没有替换成实际的变量值
  • 拼写错误:pyodc应为pyodbc,sal.create_engine应为sqlalchemy.create_engine
  • URL格式错误:端口需用冒号跟在主机后,数据库名要放在主机/端口段的末尾

修正后的SQLAlchemy连接代码

from sqlalchemy import create_engine

Host = 'host_address123'
Port = 7003
Username = 'user'
Password = 'pass'
DB = 'db-main'

# 正确拼接URL:替换为实际变量,修正格式和拼写
url = f'mssql+pyodbc://{Username}:{Password}@{Host}:{Port}/{DB}?driver=ODBC+Driver+13+for+SQL+Server'
engine = create_engine(url)

# 测试连接
with engine.connect() as conn:
    result = conn.execute("SELECT 1")
    print(result.scalar())

替代方案:直接使用pyodbc连接

如果SQLAlchemy仍有问题,直接用pyodbc更直观:

import pyodbc

Host = 'host_address123'
Port = 7003
Username = 'user'
Password = 'pass'
DB = 'db-main'

conn_str = (
    f'DRIVER={{ODBC Driver 13 for SQL Server}};'
    f'SERVER={Host},{Port};'
    f'DATABASE={DB};'
    f'UID={Username};'
    f'PWD={Password}'
)
conn = pyodbc.connect(conn_str)

# 测试查询
cursor = conn.cursor()
cursor.execute("SELECT 1")
print(cursor.fetchone()[0])
cursor.close()
conn.close()

额外注意事项

  • 确保ODBC Driver 13已安装,若系统是较新版本的Windows/Linux,可尝试ODBC Driver 17 for SQL Server兼容性更好
  • 检查防火墙是否允许你的机器访问目标SQL Server的7003端口
  • 确认SQL Server已开启TCP/IP协议(在SQL Server配置管理器中设置)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:05:01