Open Database Connectivity
Open Database Connectivity (略して ODBC) はアプリケーションの開発者にデータソースにアクセスするための予測可能な API を提供するオープン仕様です。ODBC エンジンでデータベースと通信するにはドライバーが必要になります。
目次
ODBC エンジン
2つのエンジンが存在しています: unixODBC と iODBC。unixODBC の方が広くサポートされています。この文章では unixODBC をセットアップする方法を説明します。まずローカルホストのデータベースにアクセスして、次に ODBC 経由でリモートからアクセスできるように MySQL を設定します。
SQL Server, Oracle, MySQL, SQLite, Firebird, PostgreSQL, Interbase など他にも様々な Devart ODBC ドライバー が選択できます。
インストール
設定
ドライバーは /etc/odbcinst.ini
に接続は /etc/odbc.ini
に定義します。詳しくは各ドライバーのセクションを読んでください。
ドライバー
FreeTDS
FreeTDS は Microsoft SQL Server や Sybase データベースとネイティブに対話することができる Unix や Linux 用のライブラリです。技術的には、FreeTDS は MS SQL や Sybase のクライアントが使用している TDS (Tabular Data Stream) プロトコルのオープンソースの実装になります。
インストール
設定
/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