在 Unix 上从源代码构建 MySQL 需要以下工具:
一个工作的 ANSI C++ 编译器。GCC 4.2.1 或更高版本、Sun Studio 12.1 或更高版本以及许多当前供应商提供的编译器都可以使用。
制作。
MySQL 客户端库和包含文件。要获取客户端库和包含文件,请访问 https://mysql.net.cn/downloads/。
必须安装兼容的 ODBC 管理器。已知连接器/ODBC 可与
iODBC
和unixODBC
管理器一起使用。有关更多信息,请参见 第 5.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_DIR
MYSQL_LIB_DIR
MYSQL_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=
:在系统中找不到ODBC include 目录时使用dir_name
$PATH
。-DODBC_LIB_DIR=
:在系统中找不到ODBC库目录时使用dir_name
$PATH
。-DWITH_UNIXODBC=
: 启用 unixODBC 支持。1
iODBC
是在 Linux 平台上从源代码构建连接器/ODBC 时使用的默认 ODBC 库。或者,unixODBC
可以通过将此选项设置为“ 1 ”来使用。-DMYSQLCLIENT_STATIC_LINKING=
静态链接到 MySQL 客户端库。默认选择与 MySQL 客户端库的动态链接——即默认选择boolean
:MYSQLCLIENT_STATIC_LINKING
cmake选项FALSE
(但是,来自 Oracle 的 Connector/ODBC 的二进制分发静态链接到客户端库)。如果要静态链接到 MySQL 客户端库,请将选项设置为TRUE
. 另请参阅该 选项的说明。-DMYSQLCLIENT_LIB_NAME=
client_lib_name_with_extension
-DBUNDLE_DEPENDENCIES=
:启用与连接器一起安装外部库运行时依赖项,例如 OpenSSL。对于从 MySQL 客户端库继承的依赖项,这仅在这些依赖项与客户端库本身捆绑在一起时才有效。v8.0.11 中添加的选项。boolean
-DMYSQLCLIENT_LIB_NAME=
:MySQL 客户端库的位置。请参阅说明client_lib_name_with_extension
MYSQLCLIENT_STATIC_LINKING
。要静态链接到 MySQL 客户端库,请使用此选项为静态链接提供客户端库的名称。如果你想动态链接到 MySQL 客户端库而不是libmysqlclient.so
. cmake在环境变量指定的位置下查找客户端库MYSQL_LIB_DIR
;如果未指定变量,cmake将在环境变量指定的文件夹内的默认位置下查找MYSQL_DIR
。-DMYSQL_CONFIG_EXECUTABLE=
: 指定实用程序 mysql_config的位置,该实用程序用于获取变量/path/to/mysql_config
MYSQL_INCLUDE_DIR
、MYSQL_LIB_DIR
、MYSQL_LINK_FLAGS
和 的值MYSQL_CXXFLAGS
。mysql_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
如果出现任何错误,请更正它们并继续构建过程。如果您无法完成构建,请参阅 第 5.9.1 节“连接器/ODBC 社区支持”。
安装驱动程序库
要安装驱动程序库,请执行以下命令:
$> make install
有关构建过程的更多信息,请参阅
BUILD
源代码分发附带的文件。
在 Unix 上测试连接器/ODBC
连接器/ODBC 的一些测试在您构建的库的分发中提供。运行测试:
确保您有一个
odbc.ini
文件,您可以通过该文件配置您的 DSN 条目。odbc.ini
该文件夹下的构建过程会生成示例文件test
。将环境变量设置为 文件ODBCINI
的位置odbc.ini
。odbc.ini
在您的文件 中设置测试 DSN (有关详细信息,请参阅第 5.5.5 节“在 Unix 上配置连接器/ODBC DSN” )。odbc.ini
可在示例文件 中找到可用于测试的示例 DSN 条目 。将环境变量设置为
TEST_DSN
测试 DSN 的名称。设置环境变量,如果需要,
TEST_UID
还可能设置TEST_PASSWORD
测试的用户名和密码。默认情况下,测试使用“ root ”作为用户,不输入密码;如果您希望测试使用其他用户名或密码,请TEST_UID
相应 地进行设置TEST_PASSWORD
。确保您的 MySQL 服务器正在运行。
运行以下命令:
$> make test