linux连接到mysql,在linux下连接MySQL

以前说过在Linux下访问SQL Server数据库,今天讲讲如何访问MySQL数据库,访问的方式仍然是具备良好移植性的ODBC接口。在这里ODBC驱动使用的是mysql-connector-odbc 5.2.6版本。

开始安装!(如果你已经安装过了某些库,就略过相应的步骤)

1,从unixODBC官网(www.unixodbc.org)下载2.3.2版本

./configure --enable-gui=no ; make ; sudo make install

注意,如果机器上安装了多个unixODBC,一定要正确配置LD_LIBRARY_PATH,使你新安装的库在前面,否则会报奇怪的找不到数据源的问题,因为你的程序很可能连接的是老的unixODBC库,导致实际读取的odbc.ini文件并不是你实际修改的那个。

可以通过odbcinst -j命令来查询实际使用的配置文件。

2,安装libiconv,./configure ; make ; sudo make install

3,安装mysql-connector-odbc,

export MYSQL_INCLUDE_DIR=/usr/local/mysql/include

export MYSQL_LIB_DIR=/usr/local/mysql/lib

export MYSQL_DIR=/usr/local/mysql

cmake . \

-DWITH_UNIXODBC=1 \

-DODBC_INCLUDES=/usr/local/include \

-DODBC_LIB_DIR=/usr/local/lib

make

sudo make install

注意:WITH_UNIXODBC参数必须加,否则默认就去找MyODBC的头文件和库了。

开始配置!

在/usr/local/etc下有两个关键的配置文件,odbcinst.ini,odbc.ini,分别先说明配置文件的作用,odbcinst.ini用于定义ODBC驱动,odbc.ini用于定义ODBC数据源。

odbcinst.ini中定义如下:

[mysql]

Driver=/usr/local/lib/libmyodbc5a.so

SETUP=/usr/local/lib/libmyodbc5a.so

UsageCount=1

odbc.ini中定义如下:

[TESTDSN2]

Description = MySQL test database

Trace = On

TraceFile = stderr

Driver = mysql

SERVER = 192.168.1.14

USER = cutscreen

PASSWORD = cutscreen#match

PORT = 3306

DATABASE = images

socket = /tmp/mysql.sock

charset = GBK

注意:charset用于指明数据库实例的编码方式,如果数据库实例的编码为UTF-8,那就要修改这个参数。

测试连接: isql -v TESTDSN2

在程序中,就可以使用下面的连接串进行访问,如下:DSN=TESTDSN2。

在实际使用中,我采用OTL(对ODBC的访问接口进行了封装)的API,这样能使代码更加简单一些,在引用otlv4.h头文件前需要加入下面几个宏,

#define OTL_ODBC // Compile OTL 4/ODBC. Uncomment this when used with MS SQL 7.0/ 2000

#define OTL_ODBC_UNIX // Compile OTL 4 / ODBC. Uncomment this when used in Linux / Unix

#define OTL_STL // Turn on STL features

这样,就可以在代码中使用otl_connect进行访问了,简单的实例代码如下:

const char * dsn_string("DSN=TESTDSN2");

otl_connect m_conn;

m_conn.rlogon(dsn_string,1);

后面就可以进行各种数据库操作了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值