zoukankan      html  css  js  c++  java
  • 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 = yes
    
    TraceFile = /opt/unixODBC/sql.log
    UsageCount = 2
    
    
    
    [PostgreSQLODBC]
    
    Description = PostgreSQL driver for linux
    
    Driver = /usr/lib64/unixODBC/libodbcpsql.so
    Setup = /usr/lib64/unixODBC/libodbcpsqlS.so
    FileUsage = 1
    
    CPReuse = 5
    
    CPTimeout = 5
    
    UsageCount = 2

    配置odbc.ini 文件

    vi /opt/unixODBC/etc/odbc.ini

    odbc.ini

    [Postgres]
    
    Driver = PostgreSQLODBC
    
    Description = Test on PostgreSQL
    Database = foo
    Servername = 192.168.1.155
    
    UserName = sdbadmin
    
    Port = 5432
    
    ReadOnly = 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

  • 相关阅读:
    NET Core 2.2
    NET Core项目模板
    Eclipse同时显示多个控制台项目的输出
    Java中的序列化
    Java中的泛型
    Java中的集合
    Java中的数据结构
    Java中的包
    Java中的接口
    Java中的封装
  • 原文地址:https://www.cnblogs.com/chenfool/p/4226566.html
Copyright © 2011-2022 走看看