Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

Tags:

python

I am trying to connect to a datbase using pyodbc and running into following error,can anyone suggest how to overcome below error?

Installed pyodbc using the following commands

sudo apt-get install unixodbc-dev
pip install pyodbc

Code:-

#!/usr/bin/python
import pyodbc

server_name='odsdb.qualcomm.com'
database_name='ODS'
#cnx = pyodbc.connect("SERVER="+server_name+";DATABASE="+database_name)
cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)

db_cursor = cnx.cursor() 

print "List of tables in DB"
for row in db_cursor.tables():
    print row.table_name
print "\n"

Error:-

Traceback (most recent call last):
  File "mysql.py", line 7, in <module>
    cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)
like image 861
user3654069 Avatar asked May 28 '14 00:05

user3654069


People also ask

What driver do I use for Pyodbc?

pyODBC uses the Microsoft ODBC driver for SQL Server.

What is Pyodbc connect?

Connect Python to MS Access pyodbc is an open source Python module that provides access to ODBC databases. pyodbc implements the Python DB API 2.0 specification. The Python DB API defines a database-neutral interface to data stored in relational databases.


1 Answers

You should start by setting up and configuring FreeTDS. Here is a sample configurations from my files, but I'm sure other variants will work also. One difference is that I'm using Django, but the result below still worked eventually, but it works much better with SQL authentication than with Windows Authentication.

From /etc/freetds/freetds.conf (use the IP of the server if DNS is not active for the server name).

# A typical Microsoft server
[MyServer]
        host = 10.0.0.10\path
        port = 1433
        tds version = 7.0

From /etc/odbcinst.ini

[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.s

From /etc/odbc.ini

[MyServer]
Description = "Some Description"
Driver = FreeTDS
ServerName = servername\path
Server = servername
Port = 1433
Database = DBNAME

Then this command connects me to the database.

tsql -S MyServer -U username@servername -P password

like image 191
tufelkinder Avatar answered Oct 03 '22 14:10

tufelkinder