pyodbc.Error:('IM002','[IM002] [unixODBC] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect)')

时间:2014-05-28 00:00:23

标签: python

我正在尝试使用pyodbc连接到数据库并遇到以下错误,有人可以建议如何克服以下错误吗?

使用以下命令安装pyodbc

sudo apt-get install unixodbc-dev
pip install pyodbc

代码: -

#!/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"

错误: -

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 个答案:

答案 0 :(得分:1)

您应该从setting up and configuring FreeTDS开始。以下是我的文件中的示例配置,但我确定其他变体也可以使用。一个区别是我使用Django,但下面的结果最终仍然有效,但是使用SQL身份验证比使用Windows身份验证更好。

来自/etc/freetds/freetds.conf(如果DNS未对服务器名称有效,请使用服务器的IP)。

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

来自/etc/odbcinst.ini

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

来自/etc/odbc.ini

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

然后这个命令将我连接到数据库。

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