Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python pyodbc连接字符串为';t工作-”的;未找到数据源名称且未指定默认驱动程序;_Python_Sql Server_Pyodbc - Fatal编程技术网

Python pyodbc连接字符串为';t工作-”的;未找到数据源名称且未指定默认驱动程序;

Python pyodbc连接字符串为';t工作-”的;未找到数据源名称且未指定默认驱动程序;,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,最近,我试图通过pyodbc连接到SQL Server,但连接字符串有一些问题。我已经按照上一个问题的建议进行了尝试:,创建了一个.dsn文件,并尝试在字符串上实现过程的输出,但仍然得到相同的错误消息:('IM002','[IM002][unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect) 这就是我目前正在做的: conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQ

最近,我试图通过pyodbc连接到SQL Server,但连接字符串有一些问题。我已经按照上一个问题的建议进行了尝试:,创建了一个.dsn文件,并尝试在字符串上实现过程的输出,但仍然得到相同的错误消息:
('IM002','[IM002][unixODBC][Driver Manager]未找到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect)

这就是我目前正在做的:

conn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};
                      'WSID={BRRIO-xxxx};'
                      'APP={Microsoft® Windows® Operating System};'
                      'Trusted_Connection=Yes;'
                      'SERVER=BRRIO-xxxx\xxx;'
                      'Database=xxx_Data;'
                      'UID="xxxx";'
                      'PWD="xxxx";'
                      )
这就是我的.dsn文件的外观:

DRIVER={ODBC Driver 13 for SQL Server};
WSID={BRRIO-xxxx};
APP={Microsoft® Windows® Operating System};
Trusted_Connection=Yes;
SERVER=BRRIO-xxxx\xxx

非常感谢您的帮助

对于任何对此有问题的人,我找到了以下步骤的解决方案:


基本上对我来说这是一个防火墙问题,端口1433被阻塞了。此外,请确保您使用的驱动程序适合您的情况(
pyodbc.drivers()
,如@Gord Thompson所建议),并检查您的SQL server上的远程服务器连接(SQL server Management Studio>转到SQL server实例属性>连接>检查允许远程连接到此服务器).

对于任何对此有问题的人,我按照以下步骤找到了解决方案:


基本上对我来说这是一个防火墙问题,端口1433被阻塞了。此外,请确保您使用的驱动程序适合您的情况(
pyodbc.drivers()
,如@Gord Thompson所建议),并检查您的SQL server上的远程服务器连接(SQL server Management Studio>转到SQL server实例属性>连接>检查允许远程连接到此服务器).

检查
pyodbc.drivers()
返回的列表,查看哪些ODBC驱动程序可用于Python应用程序。['SQL Server','SQL Server Native Client 11.0','SQL Server的ODBC Driver 17']是否需要手动安装13?在服务器所在的虚拟机上,ODBC驱动程序是['SQL Server'、'SQL Server Native Client 11.0'、'ODBC Driver 13 for SQL Server']在我的机器上,这些驱动程序都列在我上面的评论中。也许问题与此有关?将驱动程序更改为两个环境之间的通用驱动程序(“SQL Server”),我会遇到以下错误:
OperationalError:('08001','08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect);[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]连接打开(连接())(67)]
在连接字符串中,尝试使用
'SERVER=BRRIO xxxx\\xxx;'
而不是
'SERVER=BRRIO xxxx\xxx;'
检查
pyodbc.drivers()返回的列表,查看Python应用程序可用的ODBC驱动程序。['SQL SERVER','SQL SERVER本机客户端11.0','SQL SERVER ODBC驱动程序17']是否需要手动安装13?在服务器所在的虚拟机上,ODBC驱动程序为['SQL server'、'SQL server本机客户端11.0'、'SQL server ODBC驱动程序13']在我的机器上,驱动程序列在我上面的评论中。也许问题与此有关?将驱动程序更改为两个环境之间的通用驱动程序(“例如SQL Server”),我会遇到以下错误:
OperationalError:('08001','[08001][Microsoft][ODBC SQL Server driver][DBNETLIB]SQL Server不存在或访问被拒绝。(17) (SQLDriverConnect);[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]ConnectionOpen(Connect())(67)
在连接字符串中尝试
'Server=BRRIO xxxx\\xxx;'
而不是
'Server=BRRIO xxxx\xxx;'