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

匿名 (未验证) 提交于 2019-12-03 02:24:01

问题:

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) 

回答1:

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



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!