2016/02/10
新規作成
ハマった。確認を兼ねてインストールをやってみる。
FreeBSD/amd64 10.2での unixODBCとPostgreSQL-ODBCドライバーインストール手順および接続確認手順。
今回はportsからのインストール。
root@amanda:/root # cd /usr/ports/databases/unixODBC
root@amanda:/usr/ports/databases/unixODBC # make; make install
-- 中略 --
root@amanda:/usr/ports/databases/unixODBC # pkg info unixODBC
unixODBC-2.3.4
Name : unixODBC
Version : 2.3.4
Installed on : Wed Feb 10 00:23:01 2016 JST
Origin : databases/unixODBC
Architecture : freebsd:10:x86:64
Prefix : /usr/local
Categories : databases
Licenses : LGPL21 and GPLv2
Maintainer : ports@FreeBSD.org
WWW : http://www.unixodbc.org/
Comment : ODBC library suite for Unix
Options :
DOCS : on
Shared Libs provided:
libodbccr.so.2
libodbcinst.so.2
libodbc.so.2
Annotations :
Flat size : 2.84MiB
Description :
From the web site:
What is the unixODBC Project?
The unixODBC Project goals are to develop and promote unixODBC to be the
definitive standard for ODBC on the Linux platform.
What is ODBC?
ODBC is an open specification for providing application developers with
a predictable API with which to access Data Sources. Data Sources include
SQL Servers and any Data Source with an ODBC Driver.
WWW: http://www.unixodbc.org/
root@amanda:/usr/ports/databases/unixODBC #
同じくportsからインストール。
root@amanda:/root # cd /usr/ports/databases/postgresql-odbc
root@amanda:/usr/ports/databases/postgresql-odbc # make; make install
-- 中略 --
root@amanda:/usr/ports/databases/postgresql-odbc # pkg info postgresql-odbc
postgresql-odbc-09.03.0400
Name : postgresql-odbc
Version : 09.03.0400
Installed on : Wed Feb 10 00:26:14 2016 JST
Origin : databases/postgresql-odbc
Architecture : freebsd:10:x86:64
Prefix : /usr/local
Categories : databases
Licenses : LGPL20
Maintainer : bofh@FreeBSD.org
WWW : http://www.postgresql.org/ftp/odbc/versions/
Comment : PostgreSQL ODBC driver
Options :
DOCS : on
EXAMPLES : on
Shared Libs required:
libssl.so.8
libodbcinst.so.2
libpq.so.5
Annotations :
Flat size : 657KiB
Description :
The official ODBC driver for connecting to PostgreSQL Database; not a
part of the PostgreSQL Database distribution, though -- developed and
maintained separately.
WWW: http://www.postgresql.org/ftp/odbc/versions/
root@amanda:/usr/ports/databases/postgresql-odbc #
PostgreSQL実行アカウントでログインしてユーザ odbcuser と odbcuserをオーナーとするデータベース odbcsample を定義する。
$ createuser odbcuser $ createdb --encoding=utf8 --owner=odbcuser odbcsample
psqlクライアントで確認用テーブルを定義する。今回は以下のようなテーブルを定義。
root@amanda:/root # psql -h 192.168.1.28 -U odbcuser odbcsample psql (9.3.10, サーバー 9.5.0) 注意: psql メジャーバージョン 9.3, サーバーバージョン 9.5. psql の機能の中で、動作しないものがあるかもしれません。 "help" でヘルプを表示します. odbcsample=> \d sample; テーブル "public.sample" 列 | 型 | 修飾語 -----+------------------------+-------- id | INTEGER | val | CHARACTER VARYING(100) | odbcsample=> SELECT * FROM sample; id | val ----+-------- 1 | 私は今 2 | とても 3 | 眠い。 (3 行) odbcsample=> \q root@amanda:/root #
unixODBCで導入される odbcinstコマンドでテンプレートファイルからインストールしてもいいけど面倒なので手書き。
FreeBSDのportsでは /usr/local/etc/odbcinst.ini に作成される。
[PostgreSQL] Description = PostgreSQL driver for FreeBSD Driver = /usr/local/lib/psqlodbcw.so UsageCount = 1
unixODBCで導入される odbcinstコマンドでテンプレートファイルからインストールしてもいいけど面倒なので手書き。
FreeBSDのportsでは /usr/local/etc/odbc.ini に作成される。
[sampledb] Description = test sample db Driver = PostgreSQL Trace = No TraceFile = sql.log Database = odbcsample Servername = 192.168.1.28 UserName = Password = Port = 5432 ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No
必要なら LD_LIBRARY_PATH といった環境変数にライブラリ(ドライバ)の格納パスを明示する。
FreeBSD 10.2では指定しなくても動作した。
unixODBCで導入される isql コマンドでデータソース名を指定して接続確認する。
$ isql sampledb odbcuser +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> SELECT * FROM sample; +------------+-----------------------------------------------------------------------------------------------------+ | id | val | +------------+-----------------------------------------------------------------------------------------------------+ | 1 | 私は今 | | 2 | とても | | 3 | 眠い。 | +------------+-----------------------------------------------------------------------------------------------------+ SQLRowCount RETURNS 3 3 ROWS fetched SQL> quit $
odbc.iniに定義された sampledb データソースに接続し、テーブル sample を読み出す事ができた。