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

SQL连接字符串中密码含特殊字符@的正确格式化方法问询

你遇到的报错有两个诱因:

  1. 连接URL中密码包含的@属于URL保留字符,会被解析为账号密码段和主机地址段的分隔符,导致实际传入的主机地址、密码内容全部识别错误
  2. 原连接语句未指定对应的ODBC驱动版本,触发数据源找不到的错误

无需修改原有密码,按照以下两种方法调整连接语句即可解决问题:

方法1:手动转义特殊字符+补全驱动参数

直接将密码中的@转义为URL编码%40,同时追加ODBC驱动参数即可,示例如下:

%sql mssql+pyodbc://dbadmin:myP%40ssword@Foray64?driver=ODBC+Driver+17+for+SQL+Server

注意:如果你的设备上安装的是其他版本的SQL Server ODBC驱动,将参数值替换为对应版本即可(比如ODBC+Driver+13+for+SQL+Server)。

方法2:自动编码特殊字符(推荐,适配包含多类特殊字符的密码)

如果密码还包含其他URL保留字符(比如/、?、&等),可以通过Python内置的编码工具自动处理,避免手动转义遗漏:

import urllib.parse

# 直接填入原始密码即可,无需手动修改
raw_pwd = "myP@ssword"
encoded_pwd = urllib.parse.quote_plus(raw_pwd)
conn_str = f"mssql+pyodbc://dbadmin:{encoded_pwd}@Foray64?driver=ODBC+Driver+17+for+SQL+Server"

# 执行连接
%sql $conn_str

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:24:01