首页 > 代码库 > linux 搭建unixODBC ,并对接 PostgreSQL 9.3.4

linux 搭建unixODBC ,并对接 PostgreSQL 9.3.4

环境:suse 11 ,64位的操作系统

unixODBC 版本:2.3.2

PostgreSQL 9.3.4

 

1 编译安装 unixODBC 

下载 unixODBC :http://www.unixodbc.org/download.html

解压编译

tar -zxvf unixODBC-2.3.2.tar.gz cd unixODBC-2.3.2./configure --prefix=/opt/unixODBC

make && make install

安装路径设置在 /opt/unixODBC

 

2 下载postgresql 的odbc rpm 包

下载地址:http://rpm.pbone.net/index.php3/stat/4/idpl/23893919/dir/opensuse_11.x/com/unixODBC-2.2.12-200.123.1.x86_64.rpm.html

当然,还有很多其他系统版本的postgresql 的odbc 驱动,http://rpm.pbone.net/index.php3/stat/3/srodzaj/1/search/libodbcpsqlS.so.1%28%29%2864bit%29

 

3 安装下载rpm 包

rpm -ivh unixODBC-2.2.12-200.123.1.x86_64.rpm

如果安装时候说有依赖的rpm 没有安装,可以忽略缺省的rpm ,强行安装此rpm

rpm -ivh --nodeps unixODBC-2.2.12-200.123.1.x86_64.rpm

安装后,驱动应该在 /usr/lib64/unixODBC

你可以自己手工find 一下,检查odbc 的驱动存放在哪里

find /usr/ -iname "*odbc*.so*" | grep psql

我这样的显示的是

/usr/lib64/unixODBC/libodbcpsqlS.so

/usr/lib64/unixODBC/libodbcpsql.so

 

PostgreSQL 情况

PostgreSQL 版本为9.3.4 ,数据库为 foo ,使用用户为 sdbadmin,服务端口为5432

PostgreSQL里存在两张表,一张是PostgreSQL 自身的表test ;

一张是PostgreSQL 的外部表 chen,对接的是SequoiaDB 的数据源(如何实现PostgreSQL对接SequoiaDB,可以参考:http://www.sequoiadb.com/index.php?p=whitepaper_7

 

4 配置unixODBC ,适配PostgreSQL 服务

修改odbcinst.ini文件

vi /opt/unixODBC/etc/odbcinst.ini

 

odbcinst.ini

[ODBC]Trace = yesTraceFile = /opt/unixODBC/sql.logUsageCount = 2[PostgreSQLODBC]Description = PostgreSQL driver for linuxDriver = /usr/lib64/unixODBC/libodbcpsql.soSetup = /usr/lib64/unixODBC/libodbcpsqlS.soFileUsage = 1CPReuse = 5CPTimeout = 5UsageCount = 2

 

 

配置odbc.ini 文件

vi /opt/unixODBC/etc/odbc.ini

 

odbc.ini

[Postgres]Driver = PostgreSQLODBCDescription = Test on PostgreSQLDatabase = fooServername = 192.168.1.155UserName = sdbadminPort = 5432ReadOnly = No

 

加载配置文件

/opt/unixODBC/bin/odbcinst -i -d -f /opt/unixODBC/etc/odbcinst.ini

 

 

5 启动odbc 进行连接测试

/opt/unixODBC/bin/isql -v Postgres

 查询 test 表和 chen表

 技术分享

能成功查询出来数据了

 

参考博客:

http://www.unixodbc.org/odbcinst.html

http://linux.vbird.org/linux_basic/0520rpm_and_srpm.php

linux 搭建unixODBC ,并对接 PostgreSQL 9.3.4