每次換了個平台都會忘記幾個小步驟,而導致很麻煩的後果
這次我做點詳細的紀錄
需要套件:
- SRB 3.4.x
- PostgreSQL 7.4/8.2
- unixODBC 2.2.11
- psqlodbc 07.03.0200/
08.03.0100
修正08.版的psqlodbc並沒有三個需要的.h檔,請不要下載這版本
安裝PostgreSQL:
http://www.postgresql.org/ftp/binary/
rpm --rebuild postgresql-{version}-PGDG.f8.src.rpm
建置完將libs,client,server,contrib安裝
啟動資料庫,建立好新使用者srb,建立好unigrid mcat資料庫,並將擁有者指向srb
編輯pg_hba.conf
使得localhost使用密碼存取
安裝unixODBC:
yum install unixODBC-devel
根據相依性也會裝unixODBC
安裝psqlodbc:
http://www.postgresql.org/ftp/odbc/versions/src/
根據PostgreSQL版本下載
./configure --with-unixodbc make all install
ln /usr/local/lib/psqlodbc.so /usr/local/libpsqlodbc.so
要改成lib開頭的檔案ldconfig -v才會抓得到
編輯/etc/ld.so.conf
加入一行
/usr/local/lib
接著ldconfig -v |grep psql
看有沒有
將iodbc.h isqlext.h isql.h複製到/usr/include裡
這是編譯SRB時所需要的
設定ODBC:
unixODBC根據兩個檔案作為主要設定檔
如果不清楚設定檔的存放位置
odbcinst -j 就會顯示
編輯odbc.ini
[Unigrid]
Description = Unigrid
Driver = /usr/local/lib/psqlodbc.so
Database = unigrid
Servername = localhost
UserName = srb
Password = {password}
Port = 5432
存檔後,切換到srb帳號,執行isql -v unigrid就可以測試連接
不正常的話會有一些錯誤訊息,正常的話會出現connected!
並且可以測試select
isql 指令後面跟著的就是odbc source name,在這裡也就是設定檔第一行[ ]裡的”Unigrid”
ODBC是一種資料中介層,資料來源可以根據不同的驅動程式,來讓不同平台的應用程式可以連接
例如可以讓資料來源指定驅動為excel,如此就可以存取excel檔了
不正常的情況:
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
輸入給isql的資料來源名稱錯誤,很有可能是設定檔裡的[ ]開頭的項目沒有這一項,或是那一項設定的Driver參數沒有指定
[28000][unixODBC]FATAL: ….
這一種類型的大概都是從資料庫回來的,那就要看postgresql傳回啥訊息了,可能會是帳號,密碼錯誤,無法連線,或是pg_hba.conf設定問題
編譯SRB:
MCAT
./configure --enable-psgmcat --enable-psghome=/usr/local/pgsql --enable-javagui --enable-jdkhome=$JAVA_HOME make
without MCAT
./configure --enable-javagui --enable-jdkhome=$JAVA_HOME make

最新回應