Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240134
  • 博文数量: 37
  • 博客积分: 325
  • 博客等级: 一等列兵
  • 技术积分: 1199
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-09 00:04
个人简介

坚持原创,虽然有些东西很简单,但也算是一种积累。

文章分类

全部博文(37)

文章存档

2013年(28)

2012年(9)

我的朋友

分类: LINUX

2013-07-30 18:47:10

之前的odbc连接一直使用windows下的,配置都很简单,现在换成linux平台,odbc的迁移就成了一个问题。整理下安装及配置过程。

1:先安装unixodbc  --建议用源码

点击(此处)折叠或打开

  1. ./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc
  2. make
  3. make install

其它一些参数说明

--enable-gui=no     #不使用qt画图,一般生产环境者是ssh 登陆,所以用不上界面。
--enable-iconv=yes --with-iconv-char-enc=GB18030     #这个是因为后面遇到乱码的问题,尝试用这个编译,但没起作用,不知道用来干嘛

测试:
dbcinst  -j  查看下环境

2:

安装对应的数据库驱动。
比如mysql 对应 libmyodbc。 安装完后查看下库包含的文件就可以找到对应的lib


此次强烈建议用源码安装。ubuntu 安装很简单apt-get就好。rpm 包会有依赖问题,YUM 有些包会冲突。
点击(此处)折叠或打开

  1. tar zxvf mysql-connector-odbc-5.1.11-linux-el6-x86-64bit.tar.gz
  2. cd mysql-connector-odbc-5.1.11-linux-el6-x86-64bit\lib
  3. cp libmyodbc5.so /usr/local/lib
  4. cd ../
  5. cd bin
  6. ./myodbc-installer -d -a -n "mysql" -t "DRIVER=/usr/lib/libmyodbc5.so;SETUP=/usr/lib/libmyodbc5.so"

--注册完后odbcisnt.ini里面会有配置,名字可做修改以便odbc.ini 使用
::安装过程中可能会出现找不到lib库的问题,解决办法:ln一个对应的名字就可以

另外mysqlodbc 驱动一定要下对应的版本,直接去http://dev.mysql.com/downloads/connector/odbc/#downloads选择对应的版本
否则会报驱动对应的lib库找不到。即便加了ld也是一样。
另外如果有出现: Driver]Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)
请下载mysql-connector-odbc-3.51.30-linux-rhel5-x86-32bit 这个版本安装,这个版本不支持Trace,所以连接的时候有报如下提示,可以选择删除该选项。
[MYODBCUtilReadDataSource.c][287][ERROR] Unknown attribute (Trace).
[MYODBCUtilReadDataSource.c][287][ERROR] Unknown attribute (TraceFile).

配置例子:
odbcinst.ini(配置驱动)

点击(此处)折叠或打开

  1. [mysql]
  2. Driver=/usr/local/lib/libmyodbc5.so
  3. SETUP=/usr/local/lib/libmyodbc5.so
  4. UsageCount=1


odbc.ini(配置连接)
点击(此处)折叠或打开
  1. [mysql]
  2. Description = The Database for mysql
  3. Trace = On
  4. TraceFile = stderr
  5. Driver = mysql
  6. SERVER = 192.168.1.229
  7. USER = roam
  8. PASSWORD = wd_roam
  9. PORT = 3306
  10. DATABASE = roam_t
  11. charset = UTF8
  12. option = 3
最后测试:
isql  mysql 
在这里面可以做查询,删除,插入等操作。配合终端可以验证是否会乱码。
utf8乱码问题,需要指定对应的字符
charset = utf8







阅读(14307) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~