プリントスタック TOKYO

データベースとセキュリティの世界から離れて早数年。過去の記憶を探しています。

PostgreSQL ODBC Driver のインストール

PostgreSQLODBCドライバ(psqlodbcw.so)のソースコードを入手してコンパイルインストールを行います。この記事では、PostgreSQL ODBC Driver 08.04.200 を用いています。
※unixODBCがインストールされていなければなりません。

PostgreSQL ODBC Driverの最新版を取得

# cd /usr/local/src
# wget http://wwwmaster.postgresql.org/redir/323/f/odbc/versions/src/psqlodbc-08.04.0200.tar.gz
~省略~
100%[=================================================>] 725,393 2.12M/s in 0.3s 20:18:05 (2.12 MB/s) - `psqlodbc-08.04.0200.tar.gz' を保存しました [725393]

TARボールを展開

# tar -zxvf psqlodbc-08.04.0200.tar.gz
~省略~
# chown -R postgres.postgres psqlodbc-08.04.0200

環境変数LD_LIBRARY_PATHの登録

$ vi .bash_profile
~省略~
export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/pgsql/lib

コンパイル準備

# ./configure
~省略~

configureの実行後に出力される最終行付近で下記のエラーが出力されたら環境変数LDFLAGSを設定して実行してください。

checking size of long... configure: error: cannot compute sizeof (long), 77
# export LDFLAGS='-Xlinker -rpath /usr/local/lib'
# ./configure
~省略~

上記と同じように libpq のエラーが現れた場合は、configure オプションに "--with-libpq" を付与します。

# ./configure --with-libpq=/usr/local/pgsql

configure オプションに "--with-unixodbc" も必要になる場合があります。

# ./configure --with-unixodbc --with-libpq=/usr/local/pgsql

コンパイル

$ make

インストール

# make install
~省略~
make[1]: ディレクトリ `/usr/local/src/psqlodbc-08.04.0200' から出ます

確認

# ls /usr/local/lib/psqlodbcw.so
/usr/local/lib/psqlodbcw.so

ODBCの設定

$ cd ~/
$ vi odbc.ini
[PGSQL]
Driver=/usr/local/lib/psqlodbcw.so
#Driver=/usr/local/lib/libpsqlodbc.so
Database=postgres
Servername=localhost
Port=5432

環境変数ODBCINIの設定

$ export ODBCINI=/home/postgres/odbc.ini

接続確認

$ isql -v PGSQL postgres password
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> quit