连接到SQL Server时“找到指定的服务器/实例时出错”

时间:2017-12-19 17:12:35

标签: python sql-server pypyodbc

我正在使用python 2.7,下面的代码连接sql实例

class SqlConnector:
    def __init__(self, driver, sqlserver_ip, database, **kwargs):
        if 'port' in kwargs:
            conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip +';PORT=' + kwargs['port'] + ';DATABASE=' + database + ';trusted_connection=yes;'
        else:
            conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip + ';DATABASE=' + database + ';trusted_connection=yes;'
        print conn_string
        self.conn = pypyodbc.connect(conn_string)
        self.cur = self.conn.cursor()

    def __enter__(self):
        return self

    def query(self, query_string):
        self.cur.execute(query_string)
        return

    def get_all_table_columns(self):
        columns = [column[0] for column in self.cur.description]
        return columns

    def get_all_table_rows(self):
        rows = self.cur.fetchall()
        return rows

    def __repr__(self):
        conn_string = 'DRIVER='+ driver + ';SERVER='+ sqlserver_ip + ';DATABASE=' + database + ';trusted_connection=yes;'
        return conn_string

    def __exit__(self, exc_type, exc_val, exc_tb):
        if self.conn or self.cur:
            # close cursor
            self.cur.close()
            # close connection
            self.conn.close()

我的SQL实例类似于“hostname \ PEWKA”,但错误如下

  

(u'08001',u'[08001] [Microsoft] [SQL Server Native Client 11.0] SQL   服务器网络接口:找到指定的服务器/实例时出错   [xFFFFFFFF的]。 “)

这是使用pypyodbc连接SQL实例的正确方法吗?真的找不到太多的信息。

任何人都可以获得一些亮点。非常感谢。

由于

1 个答案:

答案 0 :(得分:1)

按实例名称连接

提供由反斜杠分隔的服务器名称和实例名称,例如SERVER=hostname\PEWKA。不提供端口号。如果SQL Server实例位于远程计算机上,则必须在该计算机上运行SQL Server Browser服务。

按端口号

连接

提供以逗号分隔的服务器名称和端口号,例如SERVER=hostname,49242。不提供实例名称。另请注意,SQL Server ODBC驱动程序不支持连接字符串中的PORT=参数。