myodbc安装程序列出了数据源,但是iodbctest没有显示DSN

问题描述 投票:0回答:1

我遵循此处给出的注册驱动程序和数据源的说明:"Installing Connector/ODBC from a Binary Tarball Distribution"

意识到我必须使用use sudo when running myodbc-installer之后,我可以通过以下方式成功安装安装的驱动程序以显示为已注册:

myodbc-installer

当不带参数运行shell> myodbc-installer -d -l MySQL ODBC 8.0 Driver 时,它将列出命令行开关,并告诉您如何注册数据源。它给出的示例是:

myodbc-installer

与名称不完全匹配(它是Add a new system data source name for Unicode driver shell> myodbc-installer -s -a -c2 -n "test" \ -t "DRIVER=MySQL ODBC 8.0 Unicode Driver;SERVER=localhost;DATABASE=test;UID=myid;PWD=mypwd" ,不是MySQL ODBC 8.0 Driver ... ASCII驱动程序只是MySQL ODBC 8.0 Unicode Driver😒]

但是使用适当的驱动程序名称,我设法使安装程序成功注册了数据源,可以将其列出回来:

MySQL ODBC 8.0

但是我尝试使用此DSN的程序无法正常工作。所以我想我会寻找一些更简单的案例来尝试。 shell> myodbc-installer -s -l test - MySQL ODBC 8.0 Driver 似乎是一个不错的选择,因为它具有单击iodbctest program的功能,并且列出了数据源。但是我什么也没得到...

iodbctest

由于?帮助完成了安装过程,我以为我会尝试shell> iodbctest iODBC Demonstration program This program shows an interactive SQL processor Driver Manager: 03.52.0812.0326 Enter ODBC connect string (? shows list): ? DSN | Driver ------------------------------------------------------------------------------ Enter ODBC connect string (? shows list): ,但这没有帮助。

mysql unixodbc iodbc
1个回答
0
投票

所以我想我会尝试一些更简单的案例。 iodbctest程序似乎是一个不错的选择,因为它具有您所需要的功能?并列出了数据源。

不要混合安装iodbc和unixodbc。 iodbc不是用于ODBC的抽象工具和测试集,它是sudo

就我而言,我首先安装了unixodbc。这就是sudo iodbctest要求通过共享库函数注册驱动程序和数据源的内容。但是它以与completely independent implementation of ODBC from unixodbc.编写的方式不匹配的方式编写了.INI文件。

要点:myodbc-installer客户端似乎未动态链接为使用系统上的任何ODBC提供程序。它与iodbc的iodbc例程静态链接。 unixodbc注册过程似乎没有自动创建此索引。

(注意:这可能是unixodbc或mysql-installer使用中的错误,因为iodbctest“每个odbc.ini中都维护了一个look explicitly in the odbc.ini file for an [ODBC Data Sources] section节,并且odbcinst可能会或可能不会使用它。库。“]

有趣的是,虽然mysql-installer告诉您如何使用它注册数据源,但MySQL网站上的另一条建议则告诉您odbc.ini。这与[ODBC Data Sources]矛盾,即“注意:odbc.ini和odbcinst.ini被认为是ODBC系统信息。对此系统信息的所有访问(读取或写入)都应通过驱动程序管理器或ODBCINST共享库进行。不要直接访问这些INI文件!“(强调它们)

除了无法获取索引的问题外,即使您确实连接到Linux上的数据源,iODBC也会使用the documentation says而不是[ODBC Data Sources]。因此,使用unicode驱动程序,您将从查询中获得一堆乱码。

© www.soinside.com 2019 - 2024. All rights reserved.