pyodbc连接到SQL Server 2012的问题

时间:2015-03-21 01:27:50

标签: python sql-server sql-server-2012 pyodbc

以下是追溯。我已经阅读了所有其他SO线程,用Google搜索超过两个小时,并且无法解决这个问题。这是我尝试过的:

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

    追踪(最近一次通话):   文件" pythonscript.py",第75行,in     conn = pyodbc.connect(driver =' {SQL Server}',server =' ipaddress,1443',database =' master',uid =&#39 ; XYZ \ login',pwd ='密码') pyodbc.Error:(' 08001',' [08001] [Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect); [ 01000] [Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB] ConnectionOpen(Connect())。(53)'

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

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

然后

conn = pyodbc.connect(driver='{SQL Server}', server='1.1.1.1,1443', database='master', uid='xyz\login', pwd='pwd'

然后我也尝试了上面的两个服务器名称(文本)而不是IP地址。我不知道如何让它在这一点上起作用。

1 个答案:

答案 0 :(得分:1)

您确认服务器之间有连接吗?试试telnet -

telnet serverName 1433

如果连接,那么您可以专注于Python或连接字符串的问题。

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

这样的东西

SERVER = 1.1.1.1; PORT = 1433;

我还会说你传递整个字符串可能会更好。以下是我在使用FreeTDS的Linux上所做的事情 -

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