【问题标题】:pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
【发布时间】:2014-05-28 00:00:22
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

  • 在给定地址上可以访问您的服务器吗?是否允许在没有UIDPWD 的情况下访问?
  • 是的,它是可达的,有没有其他方法可以连接到 server_name='odsdb.company.com' database_name='ODS'
  • 一些命令行工具?我发现了一些关于odbcinst 等的东西,但这绝对不是什么东西,我今天可以在我的盒子上测试。对不起

标签: python


【解决方案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

【讨论】:

  • 有同样的问题 OP 有。我已经像你一样配置了这 3 个文件,我可以使用 tsql 连接和运行 SQL 查询,但我仍然得到同样的错误。我用 SQL Server 替换了 MyServer。我还没有做什么?
猜你喜欢
  • 2015-10-10
  • 1970-01-01
  • 2017-02-03
  • 2016-10-11
  • 1970-01-01
  • 2014-02-09
  • 2019-06-28
  • 1970-01-01
  • 2014-09-15
相关资源
最近更新 更多