A-A+
利用unixodbc连接mysql数据库
1:先安装unixodbc --建议用源码
./configure --prefix=/usr/local/unixODBC --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc make make install其它一些参数说明 --enable-gui=no #不使用qt画图,一般生产环境者是ssh 登陆,所以用不上界面。 --enable-iconv=yes --with-iconv-char-enc=GB18030 #这个是因为后面遇到乱码的问题,尝试用这个编译,但没起作用,不知道用来干嘛 测试:
#dbcinst -j #查看下环境 unixODBC 2.2.14 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 82: 安装对应的数据库驱动。 比如mysql 对应 libmyodbc。 安装完后查看下库包含的文件就可以找到对应的lib 此次强烈建议用源码安装。ubuntu 安装很简单apt-get就好。rpm 包会有依赖问题,YUM 有些包会冲突。
tar zxvf mysql-connector-odbc-5.1.11-linux-el6-x86-64bit.tar.gz cd mysql-connector-odbc-5.1.11-linux-el6-x86-64bit\lib cp libmyodbc5.so /usr/local/lib cd ../ cd bin ./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(配置驱动)
[mysql] Driver=/usr/local/lib/libmyodbc5.so SETUP=/usr/local/lib/libmyodbc5.so UsageCount=1odbc.ini(配置连接)
[mysql] Description = The Database for mysql Trace = On TraceFile = stderr Driver = mysql SERVER = 192.168.1.xxx USER = root PASSWORD = root PORT = 3306 DATABASE = test最后测试:
#isql mysql +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+在这里面可以做查询,删除,插入等操作。配合终端可以验证是否会乱码。 utf8乱码问题,需要指定对应的字符 charset = utf8 采用yum方式安装的话就比较简单了。 yum -y install unixODBC unixODBC-devel mysql-connector-odbc 然后编写/etc/odbcinsc.ini(参照上面文件)