【发布时间】:2017-05-25 21:55:05
【问题描述】:
当我查看此odbcinst -j 时,它会显示
unixODBC 2.2.14
DRIVERS............: /etc/unixODBC/odbcinst.ini
SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
FILE DATA SOURCES..: /etc/unixODBC/ODBCDataSources
USER DATA SOURCES..: /etc/unixODBC/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
但是没有位置/etc/unixODBC/odbcinst.ini。实际位置是/etc/odbcinst.ini,所以我需要更改位置。我该怎么做?
我正在尝试在脚本下面运行
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQLServer};SERVER=10.10.10.1;DATABASE=ABC;UID=username;PWD=password')
cursor = cnxn.cursor()
但它显示以下错误
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
我添加了odbc.in和odbcinst.ini文件信息如下
cat odbc.ini
[SQLServer]
Description = ODBC for MSSQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
Servername =
Database =
UID =
Port = 1433
cat /etc/odbcinst.ini
[SQLServer]
Description = ODBC for MSSQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
UsageCount = 1
FileUsage = 1
我希望问题出在odbcinst -j,当我展示它时,它会显示错误的路径。不知道怎么解决?
【问题讨论】:
-
这篇文章有用吗? denverpsmith.com/posts/…
-
我对您要连接到哪个数据库感到困惑,您能否确认一下:您已将此问题标记为 sql-server,但您的驱动程序设置似乎正在使用 mysql。我记得,sql-server 的驱动程序被命名为 libtdsodbc.so 而不是 libodbcmyS.so。也许这是你的问题?
-
我不知道您要问的产品,但您写道:“但是没有位置/etc/unixODBC/odbcinst.ini。实际位置是/etc/odbcinst.ini所以我需要改变位置。”如果这就是你想要做的,我只想添加一个符号链接: 如果目录不存在,那么: $ mkdir /etc/unixODBC $ cd /etc/unixODBC $ pwd /etc/unixODBC $ ln -s /etc /odbcinst.ini 。 $ ls -l lrwxrwxrwx ... odbcinst.ini -> /etc/unixODBC/odbcinst.ini
-
@ThomasHedden 是的,我试过了。我创建了目录并复制了文件。但它也没有工作。
-
您是否正确导出了正确的环境变量?也许您可以将它们放在您的
.bashrc或类似文件中。export ODBCINI=/etc/odbc.ini和export ODBCSYSINI=/etc这样可以指向正确的文件吗?如果可行,我会写下来......
标签: python sql-server ubuntu-14.04