MySQL 连接器/ODBC 开发人员指南  / 第 4 章连接器/ODBC 安装  /  4.5 从 Unix 上的源分发构建连接器/ODBC

4.5 从 Unix 上的源分发构建连接器/ODBC

在 Unix 上从源代码构建 MySQL 需要以下工具:

  • 一个工作的 ANSI C++ 编译器。GCC 4.2.1 或更高版本、Sun Studio 12.1 或更高版本以及许多当前供应商提供的编译器都可以使用。

  • 制作。

  • MySQL 客户端库和包含文件。要获取客户端库和包含文件,请访问 https://mysql.net.cn/downloads/

  • 必须安装兼容的 ODBC 管理器。已知连接器/ODBC 可与iODBCunixODBC管理器一起使用。有关更多信息,请参见 第 3.2 节 “ODBC 驱动程序管理器”

  • 如果您使用的字符集未编译到 MySQL 客户端库中,请将charsets目录中的 MySQL 字符定义安装到SHAREDIR(默认情况下, /usr/local/mysql/share/mysql/charsets)。如果您在同一台机器上安装了 MySQL 服务器,这些应该就位。有关字符集支持的更多信息,请参阅字符集、排序规则和 Unicode

拥有所有必需的文件后,将源文件解压缩到单独的目录,然后使用以下命令 运行cmake :

$> cmake -G "Unix Makefiles"

典型的cmake参数和选项

您可能需要通过将环境变量 、 和 设置到适当的位置来帮助cmake找到 MySQL 头文件和库;例如: MYSQL_INCLUDE_DIRMYSQL_LIB_DIRMYSQL_DIR

$> export MYSQL_INCLUDE_DIR=/usr/local/mysql/include
$> export MYSQL_LIB_DIR=/usr/local/mysql/lib
$> export MYSQL_DIR=/usr/local/mysql

运行cmake时,您可以向命令行添加选项。这里有些例子:

  • -DODBC_INCLUDES=dir_name:在系统中找不到ODBC include 目录时使用$PATH

  • -DODBC_LIB_DIR=dir_name:在系统中找不到ODBC库目录时使用$PATH

  • -DWITH_UNIXODBC=1: 启用 unixODBC 支持。iODBC是在 Linux 平台上从源代码构建连接器/ODBC 时使用的默认 ODBC 库。或者, unixODBC可以通过将此选项设置为1来使用。

  • -DMYSQLCLIENT_STATIC_LINKING=boolean: 静态链接到 MySQL 客户端库。默认选择与 MySQL 客户端库的动态链接——即默认选择 MYSQLCLIENT_STATIC_LINKING cmake选项FALSE (但是,来自 Oracle 的 Connector/ODBC 的二进制分发静态链接到客户端库)。如果要静态链接到 MySQL 客户端库,请将选项设置为TRUE. 另请参阅该 选项的说明。 -DMYSQLCLIENT_LIB_NAME=client_lib_name_with_extension

  • -DBUNDLE_DEPENDENCIES=boolean:启用与连接器一起安装外部库运行时依赖项,例如 OpenSSL。对于从 MySQL 客户端库继承的依赖项,这仅在这些依赖项与客户端库本身捆绑在一起时才有效。v8.0.11 中添加的选项。

  • -DMYSQLCLIENT_LIB_NAME=client_lib_name_with_extension:MySQL 客户端库的位置。请参阅说明MYSQLCLIENT_STATIC_LINKING。要静态链接到 MySQL 客户端库,请使用此选项为静态链接提供客户端库的名称。如果你想动态链接到 MySQL 客户端库而不是 libmysqlclient.so. cmake在环境变量指定的位置下查找客户端库 MYSQL_LIB_DIR;如果未指定变量,cmake将在环境变量指定的文件夹内的默认位置下查找MYSQL_DIR

  • -DMYSQL_CONFIG_EXECUTABLE=/path/to/mysql_config: 指定实用程序 mysql_config的位置,该实用程序用于获取变量 MYSQL_INCLUDE_DIRMYSQL_LIB_DIRMYSQL_LINK_FLAGS和 的值MYSQL_CXXFLAGSmysql_config获取的 值被作为参数 直接提供给 cmake的值覆盖。

  • -DMYSQL_EXTRA_LIBRARIES= dependencies:当静态链接 MySQL 客户端库(-DMYSQLCLIENT_STATIC_LINKING=ON)和设置 MYSQL_LIB_DIR 和 MYSQL_INCLUDE_DIR(以便 mysql_config不用于检测设置)时,使用它来定义客户端库所需的依赖项列表。

  • -DMYSQL_LINK_FLAGS=MySQL link flags

  • -DMYSQL_CXXFLAGS=MySQL C++ linkage flags

  • -DMYSQL_CXX_LINKAGE= 1:启用 C++ 链接到 MySQL 客户端库。默认情况下, MYSQL_CXX_LINKAGE为 MySQL 5.6.4 或更高版本启用。对于 MySQL 5.6.3 及更早版本,此选项必须显式设置为1.

Unix 的构建步骤

要构建驱动程序库,请执行make

$> make

如果出现任何错误,请更正它们并继续构建过程。如果您无法完成构建,请参阅 第 9.1 节“连接器/ODBC 社区支持”

安装驱动程序库

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

$> make install

有关构建过程的更多信息,请参阅 BUILD源代码分发附带的文件。

在 Unix 上测试连接器/ODBC

连接器/ODBC 的一些测试在您构建的库的分发中提供。运行测试:

  1. 确保您有一个odbc.ini文件,您可以通过该文件配置您的 DSN 条目。odbc.ini该文件夹下的构建过程会生成示例文件test 。将环境变量设置为 文件ODBCINI的位置 odbc.ini

  2. odbc.ini 在您的文件 中设置一个测试 DSN (有关详细信息,请参阅第 5.5 节“在 Unix 上配置连接器/ODBC DSN” )。odbc.ini可在示例文件 中找到可用于测试的示例 DSN 条目 。

  3. 将环境变量设置为TEST_DSN 测试 DSN 的名称。

  4. 设置环境变量,如果需要,TEST_UID 还可能设置TEST_PASSWORD测试的用户名和密码。默认情况下,测试使用root作为用户,不输入密码;如果您希望测试使用其他用户名或密码,请 TEST_UID相应 地进行设置TEST_PASSWORD

  5. 确保您的 MySQL 服务器正在运行。

  6. 运行以下命令:

    $> make test