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 を読み出す事ができた。