6
votes

I know this question was asked before but I never really got a proper answer that would solve my problem. I am trying to connect to a SQL server on a windows machine from a linux Open Suse12.4 machine.

pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=userid;PWD=password')

the exact error I got was as below:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found (0) (SQLDriverConnect)")

and below is my odbcinst.ini file :

[Easysoft ODBC-SQL Server]
Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv.so
Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so
Threading=0
FileUsage=1
DontDLClose=1
UsageCount=2

[Easysoft ODBC-SQL Server SSL]
Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv_ssl.so
Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so
Threading=0
FileUsage=1
DontDLClose=1
UsageCount=2
2
See if this answer helps. - Benny Hill
thank you so much Benny! the link you sent certainly helped! the issue was my odbc.ini and odbcinst.ini files were in /etc/. however, running odbcinst -j shows that those 2 files suppose to be at /etc/unixODBC/. so i just copied over the file and it solved my problem! thank you again - BarathanR
@BarathanR is this issue resolved then? - meet-bhagdev
Are you absolute sure your driver packages have been installed? I had similar error messages when python could not connect to OBDC driver. - vahvero

2 Answers

0
votes

This post helped me to pinpoint my issue. My situation is that i have install the ODBC driver following this post "https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-RHEL-6-or-Centos-7" and turn out, i found that DRIVER "SQL Server" does not exist in my ini file. I changed DRIVER in connection string as "cnxn = pyodbc.connect("Driver={ODBC Driver 13 for SQL Server};Server=XXXXX;Database=XXX;Uid=XXX;Pwd=XXX;")" and it works

0
votes

Pyodbc is not able to locate Driver = {SQL Server} used. In my case, It was mainly because the name I gave in odbcinst.ini file and related files wasn't correct.

Instead using Driver =/usr/local/lib/libmsodbcsql.13.dylib; using in connection uri helped me connect and hence understand that my configuration files were incorrect.

  • Different types of libraries for connecting to SQL Server installed which causes the conflict.

I corrected it and was able to connect.