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

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

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

  1. Myeclipse10.7安装git插件并将Java项目上传到码云(github)

    注:本文来源:外匹夫的<Myeclipse10.7安装git插件并将Java项目上传到码云(github)> 一.先说说安装egit插件的步骤(安装egit不成功的原因主要是下载的egit ...

  2. mysql安装check requirements出错_超详细的MySQL8.0.17版本安装教程

    下载MySQL MySQL的官网地址:https://www.mysql.com/. 如下图所示: 然后点击DOWNLOADS ==> Community,选择MySQL Community S ...

  3. 爱发php企业发卡网源码_爱发个人版自动发卡平台PHP开源源码【官方正版】

    爱发个人版自动发卡平台PHP开源网站源码 是我官方研发出个人版自动发卡平台系统 演示站:http://ka.yc88.net 备用:http://php2.a8tg.com/ 后台:http://ph ...

  4. Ubuntu14.04安装与卸载ROS(避坑教程)配kinetic版本安装官方网址

    安装 ROS indigo 版本支持 Ubuntu14.04 版本 在下载之前,建议你先信任源换成国内的地址,详细请参考鄙人的另一篇博文添加链接描述 这样可以大大提高下载速度 设置您的sources. ...

  5. ubuntu20.04安装flash插件(2022年版史上最简单flash插件安装教程)

    安装flash插件 方法1 方法2 方法3 1.进入flash官方[flash下载](https://www.flash.cn/) 2.下载解压 3.打开控制台进入解压文件的目录 4.依次执行两条语句 ...

  6. sqoop2 mysql导入hdfs_Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)

    sqoop2-1.99.4和sqoop2-1.99.3版本操作略有不同:新版本中使用link代替了老版本的connection,其他使用类似. sqoop2-1.99.4环境搭建参见:Sqoop2环境 ...

  7. kali安装python gui_黄聪:史上最详细的kali安装教程没有之一

    首先在vm里面新建虚拟机,直接选择典型,然后下一步. 1 2 然后到了这一步,选择中间的安装程序光盘镜像文件,然后去文件里面找你自己下载的镜像,这时候可能系统会出现无法检测此光盘镜像中的操作系统,没关 ...

  8. 无线网卡安装后显示无服务器,台式机插上USB无线网卡并且驱动安装完毕,但是仍然无法连接无线网络,甚至无法搜索到无线信号,什么原因...

    原因:可能没有启动无线服务,导致电脑上的无线适配器无法访问Windows的网络连接.解决方法如下: 1.开始菜单打开运行选项. 2.在打开出写入代码"services.msc  " ...

  9. linux mysql odbc驱动安装_MySQL ODBC 驱动安装

    阅读目录 一.在线安装 1.yum在线安装驱动 2.配置驱动 3.测试连接 二.编译安装 1.MySQL创建测试用户和测试库 2.安装驱动 3.配置驱动 4.测试 一.在线安装 1.yum在线安装驱动 ...

最新文章

  1. Python的零基础超详细讲解(第十二天)-Python函数及使用
  2. C#让程序只运行一次实例
  3. API读取写入 ini文件内容的方法函数详解
  4. 数据结构栈队列链表数组
  5. 日常生活中怎样利用计算机的,数据存储与管理在日常生活中的三种方式
  6. .NET版开源日志框架Log4Net详解
  7. 前端学习(2953):idea里面使用vue插件
  8. 【写作技巧】毕业论文如何写目录?
  9. 使用Emit动态调用方法(技术原型)
  10. 基于JavaWeb的3D网上模板商城
  11. python写法教程_Python的表达式写法
  12. 第一个Java Web的小case
  13. 知识蒸馏 | 知识蒸馏的算法原理与其他拓展介绍
  14. 如何用教科书式的方法,着手分析一个行业?
  15. 计算机底层知识之内存
  16. MM32F3277空闲中断+DMA接收不定长数据
  17. 计算机系统权限授权,win 7 期间版操作系统的权限说明
  18. Java面试题:Applet和普通的Java应用程序有哪些区别?
  19. 通达信筹码单峰密集选股公式,突破筹码密集区发出信号
  20. 爬取豆瓣评分前50的电影信息

热门文章

  1. 计算机毕设Python+Vue疫情下公共场所卫生安全管理系统(程序+LW+部署)
  2. 2020Android面试心得:斩获3个大厂offer后,大厂常考知识点 面试技巧出炉
  3. note_8:PCA特征脸
  4. Linux 信号:signal 与 sigaction
  5. 赤峰市计算机考试成绩查询系统,赤峰高考成绩查询系统入口
  6. 2021-9-2 Cinemachine 不需要写代码的高级跟随摄像机 2D横板游戏应用
  7. QtCreator画UML
  8. 手机号码、身份证号验证
  9. CapsuleNet
  10. 西南交通大学计算机相关专业考研科目及概述