如何使用 unixODBC 安装 sqlite3 ODBC 驱动程序?

如何使用 unixODBC 安装 sqlite3 ODBC 驱动程序?

根据unixODBC驱动程序页面(直接来自 90 年代),我应该从以下位置下载 SQLite3 驱动程序:http://www.ch-werner.de/sqliteodbc

sqliteodbc该页面提供的源代码构建说明可在此处获得:http://www.ch-werner.de/sqliteodbc/html/index.html

根据该页面,我们应该将源代码解压到一个目录中,然后运行以下命令:

1)./configure 2)make 3)make install

但是,当我./configure在目录中运行时,出现以下错误:

configure: error: No usable SQLite header/library on this system

我应该怎么办?

答案1

为了处理configure: error: No usable SQLite header/library on this system,必须:

sudo apt-get install libsqlite3-dev

执行此操作后,您可能仍会收到以下错误:

configure: error: ODBC header files and/or libraries not found

在这种情况下,请执行以下操作:

sudo apt-get install unixodbc-dev unixodbc-bin unixodbc

您可能已经有了那里列出的一些包,但是如果您收到错误,则表示您缺少了unixodbc-dev

好的,现在你应该:

1)./configure && make没有问题

2) 请make install参阅此处的说明以了解所有相关信息checkinstall我通过获取其源代码来安装一个程序,然后运行“sudo make install”;如何让“apt-get”知道它?

现在,进一步阅读为驾驶员提供的[说明] sqliteodbc,我们必须:

odbcinst.ini1)正确设置

在编辑器中打开odbcinst.ini(您可能需要超级用户权限,并且您需要知道文件在哪里 - 通常它在/etc 中,因此我们可以这样做:)sudo gedit /etc/odbcinst.ini,然后添加以下内容:

[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=4

Description使用您想要的任何字符串进行设置,但请确保安装驱动程序时提供的路径正确Driver。为了找出/确认提供了哪些:要么或只是打开并检查您拥有哪些文件。例如,根据说明中的示例,您应该指向,但我只有。如果您同时拥有两者,您可以像这样进行两个输入:Setup*.sosqliteodbc*.sogrep/usr/local/lib/*.so/usr/local/lib/libsqliteodbc.so/usr/local/lib/libsqlite3odbc.so

[SQLite3]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2

[SQLite]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqliteodbc.so
Setup=/usr/local/lib/libsqliteodbc.so
Threading=2

另外,请确保为线程选择合适的值。例如,如果您有 8 个核心,那么这也许Threading=4是合理的。

为了完成第 2 步,我将进行如下设置:

[MYGOOFYSQLITE3DRIVERTAG]
Description=SQLite ODBC Driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2

2) 可选:在 --- 中设置 DNS~/.odbc.ini只需按照说明操作即可,但请注意,您也可以使用无 DNS 的 SQLite/3。例如,使用pyodbcPython:

import pyodbc

connection_string = "Driver=MYGOOFYSQLITE3DRIVERTAG;Database=/path/to/database.db"
connection = pyodbc.connect(connection_string)

请注意,对于Driver密钥,我引用了在 中为驱动程序提供的标签odbcinst.ini。也许你想耍点小聪明,也许你不想——关键是密钥取决于你设置的内容,或者其他程序自动设置的内容,因此如果你需要知道驱动程序的名称,请在 中查找odbcinst.ini

有关连接字符串的更多详细信息,请参阅sqliteodbc我们之前提到的驱动程序说明。

相关内容