unixODBC
unixODBC 是一个用于类 Unxi 操作系统的 ODBC 驱动管理工具。
安装
不同的数据库管理系统还需要安装不同的驱动:
Note
对于商业发行版需要到对应数据库管理系统手册上查看
配置 ODBC 驱动
unixODBC 通过 /etc/odbcinst.ini
配置文件来配置 ODBC 驱动,如果是通过 apt 官方仓库安装的 odbc 驱动会自动帮我们在其中配置好:
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1
其中 MariaDB Unicode
定义了驱动的名称,而下面最核心的 Driver=path/to/driver
指定驱动的路径,默认会到 /usr/lib/x86_64-linux-gun/odbc/
目录下查找,如果不确定也可以通过下面的命令搜索:
Note
推荐使用全路径,有些 ODBC 库不支持无法加载这样的驱动程序。
Note
同样支持 ~/.odbcinst.ini
来面向用户配置
配置数据源(DSN)
所谓的 DSN 就是 Database Source Name,即数据源名称。他们在 /etc/odbc.ini
文件中配置,如果是面向用户的也可以在 ~/.odbc.ini
中配置:
[MySQLDatabase]
Description = MySQL Database Connection
Driver = MySQL ODBC 8 Driver
Server = localhost
Database = mydb
User = myuser
Password = mypassword
Port = 3306
其中 [MySQLDatabase]
是配置块,可以包含多个配置块。Driver 是 odbcinst.ini
中定义的驱动名称,而 Server、Database、User、Passowrd、Port 都是特定于数据库的连接信息。
Note
这里的配置主要是针对于 isql 的,对于编程语言的 ODBC 库通常只是连接 ODBC 驱动。
命令行工具
unixODBC 提供了几个实用的命令行工具来测试 ODBC 数据源配置和执行 SQL 查询。
isql(Interactive SQL): SQL 交互
isql 是一个 SQL 交互工具,主要用于检查 ODBC 驱动和 DSN 是否配置成功:
isql MySQLDatabase
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| echo [string] |
| quit |
| |
+---------------------------------------+
之后可以执行 SQL 命令来与该数据源进行交互。
odbcinst: 管理 ODBC 驱动程序
该命令实际上就是读取 unixODBC 配置文件: