Open Database Connectivity

提供: ArchWiki
2017年2月17日 (金) 22:52時点におけるKusakata (トーク | 投稿記録)による版 (翻訳)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Open Database Connectivity (略して ODBC) はアプリケーションの開発者にデータソースにアクセスするための予測可能な API を提供するオープン仕様です。ODBC エンジンでデータベースと通信するにはドライバーが必要になります。

ODBC エンジン

2つのエンジンが存在しています: unixODBCiODBC。unixODBC の方が広くサポートされています。この文章では unixODBC をセットアップする方法を説明します。まずローカルホストのデータベースにアクセスして、次に ODBC 経由でリモートからアクセスできるように MySQL を設定します。

SQL Server, Oracle, MySQL, SQLite, Firebird, PostgreSQL, Interbase など他にも様々な Devart ODBC ドライバー が選択できます。

インストール

unixodbc パッケージをインストールしてください。

設定

ドライバーは /etc/odbcinst.ini に接続は /etc/odbc.ini に定義します。詳しくは各ドライバーのセクションを読んでください。

ドライバー

FreeTDS

FreeTDS は Microsoft SQL Server や Sybase データベースとネイティブに対話することができる Unix や Linux 用のライブラリです。技術的には、FreeTDS は MS SQL や Sybase のクライアントが使用している TDS (Tabular Data Stream) プロトコルのオープンソースの実装になります。

インストール

freetds パッケージをインストールしてください。

設定

/etc/odbcinst.ini
[FreeTDS]
Driver          = /usr/lib/libtdsodbc.so
UsageCount      = 1

Myodbc

Myodbc は MariaDB の ODBC ドライバーです。

インストール

myodbcAUR パッケージをインストールしてください。

設定

odbcinst.ini に以下のようにドライバーを記述します:

/etc/odbcinst.ini
[MySQL]
Description     = ODBC Driver for MySQL
Driver          = /usr/lib/libmyodbc.so
Setup           = /usr/lib/libodbcmyS.so
FileUsage       = 1

シンボリックリンクの作成

libmyodbc.so のシンボリックリンクを作成してください:

# ln -s /usr/lib/libmyodbc5w.so /usr/lib/libmyodbc.so

データベース

Microsoft SQL Server 2000

/etc/odbc.ini
[server_name]
Driver      = FreeTDS
#Trace       = Yes
#TraceFile   = /tmp/odbc
Servername  = server_name
Database    = database_name
/etc/freetds/freetds.conf
[server_name]
host = 192.168.0.2 # Host name or IP address.
port = 1433 # Default port.
tds version = 7.1
client charset = UTF-8

SQL Server の ODBC ドライバーの設定方法について詳しくは 設定ガイド を参照してください。

MariaDB

/etc/odbc.ini (システム全体) または ~/.odbc (ユーザー個別) にデータソースを設定してください。両方のファイルに定義した場合、ホームディレクトリのファイルが優先されます。

[MySQL-test]
Description     = MySQL database test
Driver          = MySQL
Server          = localhost
Database        = test
Port            = 3306
Socket          = /var/run/mysqld/mysqld.sock
Option          =
Stmt            =

MariaDB の ODBC ドライバーの設定方法について詳しくは 設定ガイド を参照してください。

テストデータベースの作成

新しいデータベース "test" を作成してください。mysql-workbench などの MySQL のフロントエンドや mysqladmin コマンドで作成できます:

$ mysqladmin -h localhost -u root -p create test

ODBC のテスト

ODBC による接続をテストするには:

$ isql MySQL-test

接続が確立されると、以下のように表示されます:

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

接続に問題が起こる場合、以下を実行してエラーメッセージを確認してください:

$ isql MySQL-test -v

Virtuoso / SPARQL

/etc/odbc.ini
[ODBC Data Sources]
VOS = Virtuoso

[VOS]
Driver = virtuoso-odbc
Description = Virtuoso Open-Source Edition
Address = localhost:1111
/etc/odbcinst.ini
[virtuoso-odbc]
Driver = /usr/lib/virtodbc.so

デフォルトのログイン情報で接続を開くには (ユーザー名: "dba", パスワード: "dba"):

$ isql VOS dba dba

参照