============================================================
CentOS ODBC接続方法
============================================================
サーバ(192.168.1.1) PostgreSQL
クライアント(192.168.1.2) ODBCで、USER hogeにて接続
サーバ
PostgreSQL側
$
rpm -qa |
grep postgresql-
odbc
postgresql-
odbc-7.3-8.RHEL4.1
/var/lib/pgsql/data/pg_hba.conf
host all all 192.168.1.2 255.255.255.255 trust
クライアントから接続可能なように許可をあたえておく
クライアント側(
ODBC接続側)調査
#
rpm -qa |
grep ODBC
unixODBC-2.2.11-1.RHEL4.1
unixODBC-devel-2.2.11-1.RHEL4.1
# locate
odbc |
grep psql |
grep so
.................
/usr/lib64/libodbcpsql.so
.................
クライアント
ODBC設定例
$ vi /home/
hoge/.
odbc.ini
[
ODBC Data Sources]
test_20070604 = Posrgre
SQL ODBC Data Source 20070604
[test_20070604]
;;;Driver = /usr/lib/libodbcpsql.so
Driver = /usr/lib64/libodbcpsql.so
;;;64版は、ドライバーの格納場所が異なる為、注意する
Servername = 192.168.1.1 (
postgresql server ip)
;Port = 5432
Database = template1 (接続DB)
;Protocol = 6.4
;ReadOnly = 0
ConnSettings = set client_encoding to
UNICODE
$ isql test_20070604 postgres
PostgreSQL =>
文字コードを考慮し、きちんと設定しないと、selectできない
# set client_encoding to
euc_jp;
# SELECT china_string from t_china_data ;
ERROR: character 0xe5bca0 of encoding "
UNICODE" has no equivalent in "
EUC_JP"
(
UNICODEで格納された中国語の文字を閲覧しようとした)
# set client_encoding to
UNICODE;
# SELECT china_string from t_china_data ;
(問題なし)
[ダメな例] 上記より、間違って「ConnSettings」をすると、selectがこけるので注意する
$ vi /home/
hoge/.
odbc.ini
ConnSettings = set client_encoding to
EUC_JP