Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.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连接到SQL Server 2012问题_Python_Sql Server_Sql Server 2012_Pyodbc - Fatal编程技术网

Python pyodbc连接到SQL Server 2012问题

Python pyodbc连接到SQL Server 2012问题,python,sql-server,sql-server-2012,pyodbc,Python,Sql Server,Sql Server 2012,Pyodbc,下面是回溯。我已经阅读了所有其他的线索,在谷歌上搜索了两个多小时,但我无法理解这一点。以下是我尝试过的: 连接字符串的SQL身份验证和Windows身份验证版本 使用SQL Server名称(文本)和服务器的IP地址 包括和排除端口1443(SQL server的默认tcp/ip端口) 在Windows防火墙中创建新规则以允许端口1443处的入站/出站TCP 列表项 回溯(最近一次呼叫最后一次): 文件“pythonscript.py”,第75行,在 conn=pyodbc.connect(驱

下面是回溯。我已经阅读了所有其他的线索,在谷歌上搜索了两个多小时,但我无法理解这一点。以下是我尝试过的:

  • 连接字符串的SQL身份验证和Windows身份验证版本
  • 使用SQL Server名称(文本)和服务器的IP地址
  • 包括和排除端口1443(SQL server的默认tcp/ip端口)
  • 在Windows防火墙中创建新规则以允许端口1443处的入站/出站TCP
  • 列表项

    回溯(最近一次呼叫最后一次): 文件“pythonscript.py”,第75行,在 conn=pyodbc.connect(驱动程序={SQL Server}',服务器='ipaddress,1443',数据库='master',uid='XYZ\login',pwd='password') pyodbc.Error:('08001','[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect);[01000][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]连接打开(Connect())(53)'

以下是我尝试使用连接字符串的一些示例:

conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',server = '1.1.1.1,1443', database = 'master')
然后


然后,我还使用服务器名称(文本)而不是IP地址尝试了上述两种方法。我不知道如何在这一点上实现这一点。

您确认了服务器之间的连接吗?请尝试telnet-

telnet服务器名1433

如果这样连接,那么您可以关注Python或连接字符串的问题

在连接字符串中,将其更改为使用端口参数,而不是1433-

服务器=1.1.1.1;端口=1433

我还想说,传递整个字符串可能会更好-

self.db_connection=pyodbc.connect(“DRIVER=FreeTDS;SERVER=1.1.1;PORT=1433;DATABASE=myDB;UID=myUser;PWD=myPass;TDS_Version=8.0;”)

从WINDOWS到MS SQL SERVER数据库的连接: 这里有一个示例,我使用自己的Python脚本连接到MS SQL数据库表:

import pyodbc
server = 'ip_database_server'
database = 'database_name'
username = 'user_name'
password = 'user_password'
driver = '{SQL Server}' # Driver you need to connect to the database
port = '1433'
cnn = pyodbc.connect('DRIVER='+driver+';PORT=port;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+
                 ';PWD='+password)
cursor = cnn.cursor()
如果试图从Windows设备连接到DB,请从Windows转到ODBC数据源管理员,检查是否安装了驱动程序:

图像是西班牙文的,但您只需单击“驱动程序”选项卡,并检查驱动程序是否如图像中所示

从LINUX/UNIX到MS SQL SERVER数据库的连接: 如果您使用的是Linux/Unix,那么您应该安装一个ODBC管理器,如“FreeTDS”和“unixODBC”。要配置它们,以下链接中有一些示例:


我应该提到这一点……是的,我已通过telnet成功连接到服务器,但我也尝试在连接字符串中使用完全相同的服务器名称,但没有得到任何结果。我已在上面的回答中添加了更多详细信息。希望这会有所帮助!该示例提供了FreeTDS驱动程序的连接字符串,在*nix上使用。如果您使用的是Windows machine,继续使用DRIVER=SQL Server;相反,您可以删除TDS_版本=8.0。干杯。
import pyodbc
server = 'ip_database_server'
database = 'database_name'
username = 'user_name'
password = 'user_password'
driver = '{SQL Server}' # Driver you need to connect to the database
port = '1433'
cnn = pyodbc.connect('DRIVER='+driver+';PORT=port;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+
                 ';PWD='+password)
cursor = cnn.cursor()