我遵循此处给出的注册驱动程序和数据源的说明:"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):
,但这没有帮助。
所以我想我会尝试一些更简单的案例。 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驱动程序,您将从查询中获得一堆乱码。