mysql odbc 源码安装_26.1.7. 在Unix平台上从源码版本安装MyODBC

26.1.7. 在Unix平台上从源码版本安装MyODBC

26.1.7.1. 要求

·MySQL客户端库以及MySQL 4.0.0或更高版本的包含文件。(最好是MySQL

4.0.16或更高版本)。应满足上述要求,这是因为MyODBC需要用到该版本以上的库才提供的新调用和结构。要想获得客户端库和包含文件,请访问http://dev.mysql.com/downloads/。

·必须使用“--enable-thread-safe-client”选项配置MySQL库。Libmysqlclient是作为共享库安装的。

·必须安装下述Unix ODBC驱动管理器之一:

ounixodbc

Alpha 3或更高版本(http://www.unixodbc.org)

·如果使用了未编译在MySQL客户端库中的字符集(默认字符集为: latin1 big5 czech

euc_kr gb2312 gbk sjis tis620 ujis),就需要从字符集目录下将mysql字符定义安装到SHAREDIR中(默认情况下位于/usr/local/mysql/share/mysql/charsets)。如果在相同机器上安装了MySQL,它们应位于恰当位置。

一旦完成了所有所需文件的安装,将源码文件解包到单独目录下,并按照下面给出的说明进行操作。

26.1.7.2. 典型配置选项

使用configure脚本,能够对你所创建MyODBC的配置方式进行多种控制。典型情况下,可在“configure”命令行使用选项完成该配置操作。也可以使用环境变量来影响配置。要想了解“configure”命令支持的选项列表和环境变量,可运行下述命令:

shell> ./configure --help

下面介绍了一些常用的“configure”选项。

1.要想编译MyODBC,须使用“--with-mysql-path=DIR”选项来提供MySQL客户端库文件和包含文件路径,其中,“DIR”是MySQL的安装目录。

可通过运行“DIR/bin/mysql_config”来确定MySQL编译选项。

2.为ODBC驱动管理器(iodbc或unixobc)提供标准的头文件和库文件路径。

·如果你正在使用iodbc,而且iodbc未安装在其默认位置(/usr/local),可能需要使用“--with-iodbc=DIR”选项,其中,“DIR”是iodbc的安装目录。

如果iodbc头文件未位于DIR/include目录下,可使用“--with-iodbc-includes=INCDIR”选项指定它们的位置。

上面所述也适用于库文件。如果库文件未位于DIR/lib目录下,可使用“--with-iodbc-libs=LIBDIR”选项。

·如果你正在使用unixODBC,可使用“--with-unixODBC=DIR”选项(区分大小写),让configure寻找unixODBC而不是默认的iodbc,其中,“DIR”是unixODBC的安装目录。

如果unixODBC头文件和库文件未位于目录DIR/include和DIR/lib下,可使用“--with-unixODBC-includes=INCDIR”和“--with-unixODBC-libs=LIBDIR”选项。

3.或许你也希望指定不同于“/usr/local”的安装前缀。例如,要想将MyODBC驱动安装到“/usr/local/odbc/lib”目录下,可使用“--prefix=/usr/local/odbc”选项。

最终的配置命令应与下面给出的相似:

shell> ./configure --prefix=/usr/local \

--with-iodbc=/usr/local \

--with-mysql-path=/usr/local/mysql

26.1.7.3. 线程安全客户端

为了将驱动程序与MySQL线程安全客户端库libmysqlclient_r.so或libmysqlclient_r.a链接起来,必须指定下述configure选项:

--enable-thread-safe

也可以使用下述选项禁止它:

--disable-thread-safe

使用该选项,能够通过mysql线程安全客户端库libmysqlclient_r.so(扩展名与操作系统有关)的链接,创建驱动程序线程安全库libmyodbc3_r.so。

在配置线程安全选项时,如果出现了配置错误,应检查config.log,检查错误是否是因系统中缺少线程库而导致的,如果是,使用LIBS选项提供一个,即

LIBS="-lpthread" ./configure ..

26.1.7.4. 共享或静态选项

可以使用下述选项启用或禁止共享和静态选项:

--enable-shared[=yes/no]

--disable-shared

--enable-static[=yes/no]

--disable-static

26.1.7.5. 启用调试信息

默认情况下,所有的二进制分发版均会被创建为非调试版(采用“--without-debug”进行配置)。

要想启用调试信息,请使用源码分发版创建驱动程序,并在运行“configure”时使用“--with-debug”选项。

26.1.7.6. 允许文档功能

该选项仅能用于BK克隆树,而不是一般的源码分发版。

默认情况下,驱动程序是使用“--without-docs”创建的。如果希望在正常创建过程中观察文档信息,可使用下述选项进行配置:

--with-docs

26.1.7.7. 创建和编译

要想创建驱动程序库,仅需执行“make”,该命令能完成所有事项。shell> make

如果出现错误,更正后,继续执行创建进程。如果无法创建,请发送详细的电子邮件至

26.1.7.8. 创建共享库

在大多数平台上,默认情况下,MySQL不会创建或支持“.so”(共享)客户端库,这是因为,创建共享库在过去造成过很多问题。

在这种情况下,你可以下载MySQL分发版,并使用以下选项进行配置:

--without-server --enable-shared

要想创建共享驱动程序库,必须为“configure”指定“--enable-shared”选项。默认情况下,“configure”不启用该选项。

如果使用“--disable-shared”选项进行了配置操作,可使用下述命令,从静态库创建“.so”文件。

shell> cd MyODBC-3.51.01

shell> make

shell> cd driver

shell> CC=/usr/bin/gcc \

$CC -bundle -flat_namespace -undefined error \

-o .libs/libmyodbc3-3.51.01.so \

catalog.o connect.o cursor.o dll.o error.o execute.o \

handle.o info.o misc.o myodbc3.o options.o prepare.o \

results.o transact.o utility.o \

-L/usr/local/mysql/lib/mysql/ \

-L/usr/local/iodbc/lib/ \

-lz -lc -lmysqlclient -liodbcinst

如果你正在使用unixODBC而不是iODBC,务必将“-liodbcinst”更改为“-lodbcinst”,并相应地配置库路径。

这样,就创建了libmyodbc3-3.51.01.so文件,并将其放在“.libs”目录下。将该文件拷贝到MyODBC库目录下(/usr/local/lib,或使用“--prefix”提供的安装目录下的“lib”目录)。

shell> cd .libs

shell> cp libmyodbc3-3.51.01.so /usr/local/lib

shell> cd /usr/local/lib

shell> ln -s libmyodbc3-3.51.01.so libmyodbc3.so

要想创建线程安全驱动程序库:

shell> CC=/usr/bin/gcc \

$CC -bundle -flat_namespace -undefined error

-o .libs/libmyodbc3_r-3.51.01.so

catalog.o connect.o cursor.o dll.o error.o execute.o

handle.o info.o misc.o myodbc3.o options.o prepare.o

results.o transact.o utility.o

-L/usr/local/mysql/lib/mysql/

-L/usr/local/iodbc/lib/

-lz -lc -lmysqlclient_r -liodbcinst

26.1.7.9. 安装驱动库

要想安装驱动程序库,请执行下述命令:

shell> make install

该命令将安装下述库集合之一:

对于MyODBC 3.51:

·libmyodbc3.so

·libmyodbc3-3.51.01.so,其中,3.51.01是驱动程序的版本

·libmyodbc3.a

对于线程安全MyODBC 3.51:

·libmyodbc3_r.so

·libmyodbc3-3_r.51.01.so

·libmyodbc3_r.a

对于MyODBC 2.5.0:

·libmyodbc.so

·libmyodbc-2.50.39.so,其中,2.50.39是驱动程序的版本

·libmyodbc.a

关于创建进程的更多信息,请参阅与源码分发版一起提供的INSTALL文件。注意,如果你试图使用Sun的“make”,可能会以错误结束。从另一方面来说,GNU

gmake在所有平台上均能良好工作。

26.1.7.10. 在Unix平台上测试MyODBC

要想与你创建的库一起运行分发版中提供的示例,可执行:

shell> make test

首先,务必在odbc.ini中配置DSN

'myodbc3',并将环境变量ODBCINI指向正确的odbc.ini文件;同时MySQL服务器应处于运行状态。在驱动分发版中,可找到一个示例用odbc.ini文件。

你甚至可以更改示例/运行示例脚本,以命令行参数的形式将所需的DSN、UID和PASSWORD值传递给示例。

26.1.7.11. Mac OS X注意事项

要想在Mac OS X (Darwin)环境下创建驱动程序,可使用下述configure示例:

shell> ./configure --prefix=/usr/local

--with-unixODBC=/usr/local

--with-mysql-path=/usr/local/mysql

--disable-shared

--enable-gui=no

--host=powerpc-apple

该命令假定unixODBC和MySQL均安装在默认位置。如不然,请进行相应配置。

在 Mac OS X环境下,“--enable-shared”选项将默认创建“.dylib”文件。你也可以采用下述方式创建“.so”文件:

shell> make

shell> cd driver

shell> CC=/usr/bin/gcc \

$CC -bundle -flat_namespace -undefined error

-o .libs/libmyodbc3-3.51.01.so *.o

-L/usr/local/mysql/lib/

-L/usr/local/iodbc/lib

-liodbcinst -lmysqlclient -lz -lc

要想创建线程安全驱动程序库:

shell> CC=/usr/bin/gcc \

$CC -bundle -flat_namespace -undefined error

-o .libs/libmyodbc3-3.51.01.so *.o

-L/usr/local/mysql/lib/

-L/usr/local/iodbc/lib

-liodbcinst -lmysqlclienti_r -lz -lc -lpthread

如果你正在使用unixODBC而不是iODBC,务必将“-liodbcinst”更改为“-lodbcinst”,并相应地配置库路径。

在Apple的GCC版本中,cc和gcc实际上均是gcc3的符号链接。

将该库拷贝到$prefix/lib目录下,并将symlink拷贝到libmyodbc3.so。

可以使用下述命令交叉检验输出的共享库属性:

shell> otool -LD .libs/libmyodbc3-3.51.01.so

26.1.7.12. HP-UX注意事项

要想在HP-UX 10.x或11.x环境下创建驱动程序,可使用下述configure示例:

如果使用cc:

shell> CC="cc" \

CFLAGS="+z" \

LDFLAGS="-Wl,+b:-Wl,+s" \

./configure --prefix=/usr/local

--with-unixodbc=/usr/local

--with-mysql-path=/usr/local/mysql/lib/mysql

--enable-shared

--enable-thread-safe

如果使用gcc:

shell> CC="gcc" \

LDFLAGS="-Wl,+b:-Wl,+s" \

./configure --prefix=/usr/local

--with-unixodbc=/usr/local

--with-mysql-path=/usr/local/mysql

--enable-shared

--enable-thread-safe

一旦创建了驱动程序,使用“chatr .libs/libmyodbc3.sl”交叉检查其属性,查看是否需要使用SHLIB_PATH环境变量的MySQL客户端库。对于静态版,忽略所有的共享库选项,并使用“--disable-shared”选项运行“configure”。

26.1.7.13. AIX注意事项

要想在AIX环境下创建驱动程序,可使用下述configure示例:

shell> ./configure --prefix=/usr/local

--with-unixodbc=/usr/local

--with-mysql-path=/usr/local/mysql

--disable-shared

--enable-thread-safe

注释: 关于在不同平台上创建和设置静态和共享库方式的更多信息,请参见跨平台使用静态和共享库。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值