Cannot establish connection to sql-server using pyodbc on Windows 7

81,638

Solution 1

You're using a connection string of 'DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes', you're trying to connect to a server called server, a database called db1, etc. It doesn't use the variables you set before, they're not used.

It's possible to pass the connection string parameters as keyword arguments to the connect function, so you could use:

cnxn = pyodbc.connect(driver='{SQL Server}', host=server, database=db1,
                      trusted_connection=tcon, user=uname, password=pword)

Solution 2

I had faced this error due to another reason.
It was because my server had a "port" apart from the address.
I could fix that by assigning the following value to "Server" parameter of the connection string.

"...;Server=<server_name>,<port#>;..."

Note that it is a 'comma' and not 'colon'/'period'

Share:
81,638
nicholsonjf
Author by

nicholsonjf

Updated on July 09, 2022

Comments

  • nicholsonjf
    nicholsonjf almost 2 years

    I'm using ActivePython 2.7.2.5 on Windows 7.

    While trying to connect to a sql-server database with the pyodbc module using the below code, I receive the subsequent Traceback. Any ideas on what I'm doing wrong?

    CODE:

    import pyodbc
    driver = 'SQL Server'
    server = '**server-name**'
    db1 = 'CorpApps'
    tcon = 'yes'
    uname = 'jnichol3'
    pword = '**my-password**'
    
    cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes')
    cursor = cnxn.cursor()
    cursor.execute("select * from appaudit_q32013")
    rows = cursor.fetchall()
    for row in rows:
        print row
    

    TRACEBACK:

    Traceback (most recent call last):
      File "pyodbc_test.py", line 9, in <module>
        cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=server;DATABASE=db1;UID=uname;PWD=pword;Trusted_Connection=yes')
    pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (53)')