提问者:小点点

pyodbc连接到SQL Server 2012的问题


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

>

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

    回溯(最近一次调用):文件“PythonScript.py”,第75行,在conn=pyodbc.Connect(Driver='{SQL Server}‘,Server='ipaddress,1443',database='master',uid='xyz\login',pwd='password')pyodbc.error:('08001','[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect);[01000][Microsoft][ODBC SQL Server驱动程序]

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

    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个答案

    匿名用户

    是否确认了服务器之间的连通性?尝试telnet-

    telnet服务器名1433

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

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

    服务器=1.1.1.1;端口=1433;

    我还想说,你最好把整根绳子都传递出去。下面是我在Linux上使用Freetd所做的工作-

    self.db_connection=pyodbc.connection(“driver=freetds;server=1.1.1.1;port=1433;database=mydb;uid=myuser;pwd=mypass;tds_version=8.0;”)