pyodbc.Error: ('IM002', '[IM002] [unixODBC][驱动管理] 未找到数据源名称,也未指定默认驱动 (0) (SQLDriverConnect)')
我正在尝试使用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 个回答
1
你应该先设置和配置 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