python - PYODBC--未找到数据源名称。如何获取有效的连接字符串
问题描述
我正在使用带有 Docker 的 SQL Server。我正在尝试将 pyodbc 连接到我的服务器,但后来我得到了:
pyodbc.Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')
使用 DBeaver 我得到了一些细节:
SELECT
@@servername AS 'Server Name',
@@servicename AS 'Instance Name',
DB_NAME() AS 'Database Name',
HOST_NAME() AS 'Host Name'
这个 SQL 返回:
193aeb2132e4, MSSQLSERVER, model, HDZKNV2
我的连接字符串应该如何导致这个不起作用(我猜这个有任何变化)?
'DRIVER={Microsoft Access Text Driver};
SERVER=193aeb2132e4\MSSQLSERVER;
DATABASE=model;
Trusted_Connection=yes;
User=admin;
Password=passowrd'
解决方案
几个问题:
MSSQLSERVER
是默认的、未命名的 SQL Server 实例的内部实例名称 - 要连接到它,只需使用服务器名称(或 IP 地址)而不添加MSSQLSERVER
作为实例名称您不应该
Trusted_Connection=yes
(使用当前登录的用户的凭据)与明确的用户名/密码一起使用 - 使用一个或另一个,但不能同时使用。根据有关 PyODBC 的 Microsoft 官方文档- 您应该使用
DRIVER={ODBC Driver 17 for SQL Server}
andUID/PWD
(notUser
)
所以试试这些设置:
DRIVER={ODBC Driver 17 for SQL Server};
SERVER=193aeb2132e4;
DATABASE=model;
UID=admin;
PWD=passowrd
推荐阅读
- groovy - Groovy JMeter 传递带空格的字符串,避免 %20
- ruby - 如何从大字符串中提取文本并进行更改
- python - 为什么 Django 错误消息有空的类扩展?
- angular - 从组件到控制器访问输入属性值Angular 6
- ios - 成功构建应用程序后 Xcode 存档错误
- typescript - 通过“is”运算符和条件类型缩小泛型类型
- php - 从数据库中添加 2 个数字
- ios - 折叠可折叠部分标题时,UITableView 表标题下拉
- spring-mvc - Spring MVC为什么调用@Value属性时我的属性为空
- python - 发送带有数据的 Firebase 消息时出现问题