1. isql -v DNS USER PWD,这里DNS为odbc.ini开头的名称,USER为用户,PWD为密码.
需要编写odbc.ini和odbcinst.ini两个文件
odbc.ini文件内容:
[mysql] //这里是DNS文件的名称
Description = Data Source to mysql_from for read config for scp_platfom
Driver = MYSQL //MYSQL要在odbcinst.ini文件中申明
TraceFile = sql.log
TDS_Version = 8.0
Trace = Yes
Server = 192.168.1.98 //这里是数据库所在主机的ip地址,如果数据库在本地,可以为localhost
Port = 3306 //数据库的端口,一般默认为3306
Database = scp_pm //数据库名称
odbcinst.ini文件内容:
[MYSQL]
Dirver = /usr/local/lib64/libmyodbc5a.so //这里是odbc库的存放位置,指明了odbc驱动
Description = ODBC for MYSQL
2. [unixODBC][Driver Manager]Can't open lib '/usr/lib64/odbc/libmyodbc.so' : file not found)
这里是mysql-connector-odbc的版本不对,在http://dev.mysql.com/downloads/connector/odbc/5.1.html中下载
mysql-connector-odbc-5.3.2-linux-glibc2.5-x86-64bit.tar(64位),解压后加入将lib下
的libmyodbc5a.so和libmyodbc5w.so拷贝到/usr/local/lib64即可
3. Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
通过下面博客解决http://blog.csdn.net/junchaox/article/details/7287137
主要是默认的mysql.sock实在/tmp下,而在安装时是在/var/lib/mysql/mysql.sock下,这里只要在odbc.ini中添加
SOCKET=/var/lib/mysql/mysql.sock即可
网上出现这个错误可能的原因还有MySQL的port改变了,其一般默认为3306
4. gcc -o otl_hello otl_hello.cpp -l myodbc5
出错:/usr/bin/ld: warning: libodbcinst.so.1, needed by /usr/local/lib64/libmyodbc5.so, not found (try using -rpath or -rpath-
link)
出错的原因是我们使用的libmyodbc5a.so,其在/usr/local/lib中对应的是libodbcinst.so.2,没有libodbcinst.so.1
解决方法:
gcc -o otl_hello otl_hello.cpp -l myodbc5a,同时要将/usr/local/lib; /usr/local/lib64加入到LD_LIBRARY_PATH中,在程
序运行时可以支持