首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 8.0源码编译安装(一)

MySQL 8.0源码编译安装(一)

原创
作者头像
Raymond运维
发布2025-09-22 23:20:39
发布2025-09-22 23:20:39
4160
举报
文章被收录于专栏:干货分享干货分享

2.4 源码编译安装

建议:内存6G以上,否则编译时可能会出错,这里设置的4C8G。

2.4.1 MySQL 8.0

2.4.1.1 用户和组
代码语言:javascript
复制
1# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、 Kylin Server、UOS Server、Ubuntu、Debian
2useradd-r-s /sbin/nologin -d /data/mysql mysql
3
4# openSUSE
5groupadd-r mysql
6useradd-s /sbin/nologin -d /data/mysql -r-g mysql mysql
2.4.1.2 准备数据库目录
代码语言:javascript
复制
1mkdir-p /data/mysql
2chown mysql:mysql /data/mysql
2.4.1.3 下载并解压缩源码包

MySQL源码包下载,去“https://www.mysql.com/”网站下载,选择“DOWNLOADS”,如图50所示。

t50
t50

图50 下载MySQL源码包

选择“MySQL Community (GPL) Downloads”,如图51所示。

t51
t51

图51 下载MySQL源码包

然后选择“MySQL Community Server”,如图52所示。

t52
t52

图52 下载MySQL源码包

然后版本选择“8.0.42”,操作系统选择“Source Code”,系统版本选择“All Operating Systems (Generic) (Architecture Independent)”,然后选择下面的“mysql-boost-8.0.42.tar.gz”包后面的“Download”进行下载,如图53所示。

t53
t53

图53 下载MySQL源码包

代码语言:javascript
复制
1cd /usr/local/src/
2
3# Rocky、Almalinux、CentOS、AnolisOS、OpenCloudOS、Kylin Server默认没有wget包,需要安装
4yum install-ywget
5
6# openEuler 22.03/24.03 LTS、AnolisOS 23、OpenCloudOS 9没有安装tar包,需要安装
7yum install-ytar
8
9wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.42.tar.gz
10
11tar xf mysql-boost-8.0.42.tar.gz
2.4.1.4 源码编译安装

编译安装说明 :

利用cmake编译,而利用传统方法,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。

编译选项:https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html。

MySQL cmake 一些常用的参数解释

代码语言:javascript
复制
1-DCMAKE_INSTALL_PREFIX# MariaDB 的安装目录
2-DMYSQL_DATADIR# MariaDB 数据存储路径
3-DSYSCONFDIR# 配置文件目录
4-DWITH_INNOBASE_STORAGE_ENGINE# 是否安装 innodb 存储引擎 - 参数:1 or 0
5-DWITH_ARCHIVE_STORAGE_ENGINE# 是否安装 archive 存储引擎 - 参数:1 or 0
6-DWITH_BLACKHOLE_STORAGE_ENGINE# 是否安装 blackhole 存储引擎 - 参数:1 or 0
7-DWITH_DEBUG# 是 MariaDB 编译时的一个 CMake 参数,用于启用或禁用调试模式,1是启用,0是禁用
8-DWITH_SSL# 用于指定是否启用 SSL 支持,system是使用系统已安装的 OpenSSL(推荐,依赖系统包)。
9-DWITH_LIBWRAP# 用于控制是否启用 libwrap(TCP Wrappers)支持,0是禁用 libwrap,不启用 TCP Wrappers 支持,避免潜在的性能影响
10-DENABLED_LOCAL_INFILE# 是否开启 load data infile 命令 - 参数:1 or 0
11-DMYSQL_UNIX_ADDR# Unix socket 文件路径
12-DDEFAULT_CHARSET# 默认字符集
13-DDEFAULT_COLLATION# 校验字符
14-DWITH_BOOST# 用于控制是否在构建项目时启用对 Boost 库 的支持。
15-DFORCE_INSOURCE_BUILD# 用于 强制在源码目录内进行构建(in-source build),而不是推荐的外源码构建(out-of-source build)。设置该选项后:允许或强制你在源码目录中直接运行  cmake .  和  make ,不需要单独建 build 目录。
16-DWITH_SYSTEMD# 是否 systemctl 管理 - 参数:1 or 0
2.4.1.4.1 Rocky 10、Almalinux 10、CentOS Stream 10、AnolisOS 8/23和OpenCloudOS 8

进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
复制
1yum install-y cmake

执行cmake:

代码语言:javascript
复制
1cmake .\
2-DCMAKE_INSTALL_PREFIX=/apps/mysql \
3-DMYSQL_DATADIR=/data/mysql/ \
4-DSYSCONFDIR=/etc/ \
5-DWITH_INNOBASE_STORAGE_ENGINE=1\
6-DWITH_ARCHIVE_STORAGE_ENGINE=1\
7-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
8-DWITH_DEBUG=0\
9-DWITH_SSL=system \
10-DWITH_LIBWRAP=0\
11-DENABLED_LOCAL_INFILE=1\
12-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
13-DDEFAULT_CHARSET=utf8mb4 \
14-DDEFAULT_COLLATION=utf8mb4_general_ci \
15-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
16-DFORCE_INSOURCE_BUILD=1\
17-DWITH_SYSTEMD=1
18...
19CMake Error at CMakeLists.txt:585 (PROJECT):
20  No CMAKE_C_COMPILER could be found.
21
22  Tell CMake where to find the compiler by setting either the environment
23  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
24  the compiler, or to the compiler name if it is in the PATH.# 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。
25
26
27CMake Error at CMakeLists.txt:585 (PROJECT):
28  No CMAKE_CXX_COMPILER could be found.
29
30  Tell CMake where to find the compiler by setting either the environment
31  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
32  to the compiler, or to the compiler name if it is in the PATH.# 提示,通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装gcc-c++。
33
34
35-- Configuring incomplete, errors occurred!

安装依赖包:

代码语言:javascript
复制
1yum install-y gcc gcc-c++

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22Not a supported openssl version inWITH_SSL=system.
23Make sure you have specified a supported SSL version.
24Valid options are :
25openssl[0-9]+ (use alternative system library)
26yes(synonym for system)
27</path/to/custom/openssl/installation>
28
29CMake Error at cmake/ssl.cmake:84 (MESSAGE):
30  Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包
31
32Call Stack (most recent call first):
33  cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)
34  CMakeLists.txt:1826 (MYSQL_CHECK_SSL)
35
36
37-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
复制
1yum install-y openssl-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
23CMake Error at cmake/readline.cmake:93 (MESSAGE):
24  Curses library not found.  Please install appropriate package,
25
26      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. # 提示,找不到 Curses 库。请安装合适的软件包,删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,包名称是 libncurses5-dev,在 Redhat 及其衍生产品上是 ncurses-devel。
27Call Stack (most recent call first):
28  cmake/readline.cmake:127 (FIND_CURSES)
29  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
30  CMakeLists.txt:1930 (MYSQL_CHECK_EDITLINE)
31
32
33-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
复制
1yum install-y ncurses-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22--   Package 'libtirpc', required by 'virtual:world', not found
23CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
24  Cannot find RPC development libraries.  You need to install the required
25  packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
26
27    Debian/Ubuntu:              aptinstall libtirpc-dev
28    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
29    SuSE:                       zypperinstall glibc-devel
30
31Call Stack (most recent call first):
32  cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)
33  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
34
35
36CMake Error at cmake/rpc.cmake:113 (MESSAGE):
37  Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
38Call Stack (most recent call first):
39  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
40
41
42-- Configuring incomplete, errors occurred!

安装libtirpc-devel包:

代码语言:javascript
复制
1[root@rocky10 mysql-8.0.42]# yum install -y libtirpc-devel
2Last metadata expiration check: 0:11:41 ago on Tue 10 Jun 2025 02:21:30 PM CST.
3No match for argument: libtirpc-devel
4Error: Unable to find a match: libtirpc-devel
5# 没有找到libtirpc-devel包
6
7# Rocky 10要启用devel镜像仓库
8dnf config-manager --set-enabled devel
9
10[root@almalinux10 mysql-8.0.42]# yum install -y libtirpc-devel
11Last metadata expiration check: 0:07:57 ago on Tue 10 Jun 2025 03:02:32 PM CST.
12No match for argument: libtirpc-devel
13Error: Unable to find a match: libtirpc-devel
14# 没有找到libtirpc-devel包
15
16# Almalinux 10和CentOS Stream 10要启用crb镜像仓库
17dnf config-manager --set-enabled crb
18
19yum install-y libtirpc-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
23  Cannot find rpcgen executable.  You need to install the required packages:  # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall rpcsvc-proto
26    RedHat/Fedora/Oracle Linux: yum install rpcgen
27    SuSE:                       zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30  plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)
31  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
32
33
34CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):
35  Could not find rpcgen
36Call Stack (most recent call first):
37  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
38
39
40-- Configuring incomplete, errors occurred!

安装rpcgen包:

代码语言:javascript
复制
1[root@opencloudos8 mysql-8.0.42]# yum install -y rpcgen
2Last metadata expiration check: 0:05:52 ago on Wed 28 May 202510:18:01 PM CST.
3No match for argument: rpcgen
4Error: Unable to find a match: rpcgen
5# 提示,找不到rpcgen包
6
7# OpenCloudOS 8要启用PowerTools镜像仓库
8dnf config-manager --set-enabled PowerTools
9
10yum install-y rpcgen

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22# 正常会有类似如下的输出
23-- Configuring done(47.2s)
24-- Generating done(5.0s)
25-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
复制
1make-j$(nproc)&&makeinstall

总结编译过程:

代码语言:javascript
复制
1# Rocky 10要启用devel镜像仓库
2dnf config-manager --set-enabled devel
3
4# Almalinux 10和CentOS Stream 10要启用crb镜像仓库
5dnf config-manager --set-enabled crb
6
7# OpenCloudOS 8要启用PowerTools镜像仓库
8dnf config-manager --set-enabled PowerTools
9
10# 安装依赖包
11yum install-y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen
12
13# 进入mysql包解压的目录
14cd mysql-8.0.42/
15
16# 执行cmake
17cmake .\
18-DCMAKE_INSTALL_PREFIX=/apps/mysql \
19-DMYSQL_DATADIR=/data/mysql/ \
20-DSYSCONFDIR=/etc/ \
21-DWITH_INNOBASE_STORAGE_ENGINE=1\
22-DWITH_ARCHIVE_STORAGE_ENGINE=1\
23-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
24-DWITH_DEBUG=0\
25-DWITH_SSL=system \
26-DWITH_LIBWRAP=0\
27-DENABLED_LOCAL_INFILE=1\
28-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
29-DDEFAULT_CHARSET=utf8mb4 \
30-DDEFAULT_COLLATION=utf8mb4_general_ci \
31-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
32-DFORCE_INSOURCE_BUILD=1\
33-DWITH_SYSTEMD=1
34
35# 执行make
36make-j$(nproc)&&makeinstall
2.4.1.4.2 Rocky 8/9、Almalinux 8/9和CentOS Stream 8/9

进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
复制
1yum install-y cmake

执行cmake:

代码语言:javascript
复制
1cmake .\
2-DCMAKE_INSTALL_PREFIX=/apps/mysql \
3-DMYSQL_DATADIR=/data/mysql/ \
4-DSYSCONFDIR=/etc/ \
5-DWITH_INNOBASE_STORAGE_ENGINE=1\
6-DWITH_ARCHIVE_STORAGE_ENGINE=1\
7-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
8-DWITH_DEBUG=0\
9-DWITH_SSL=system \
10-DWITH_LIBWRAP=0\
11-DENABLED_LOCAL_INFILE=1\
12-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
13-DDEFAULT_CHARSET=utf8mb4 \
14-DDEFAULT_COLLATION=utf8mb4_general_ci \
15-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
16-DFORCE_INSOURCE_BUILD=1\
17-DWITH_SYSTEMD=1
18...
19CMake Warning at CMakeLists.txt:404 (MESSAGE):
20  Could not find devtoolset compiler/linker in /opt/rh/gcc-toolset-12
21
22
23CMake Warning at CMakeLists.txt:406 (MESSAGE):
24  You need to install the required packages: # 提示,您需要安装所需的软件包:
25
26   yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc
27
28
29
30CMake Error at CMakeLists.txt:408 (MESSAGE):
31  Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly. # 提示,需要安装gcc和gcc-c++
32
33
34-- Configuring incomplete, errors occurred!

安装依赖包:

代码语言:javascript
复制
1yum install-y gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/ssl.cmake:84 (MESSAGE):
23  Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包
24
25Call Stack (most recent call first):
26  cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)
27  CMakeLists.txt:1826 (MYSQL_CHECK_SSL)
28
29
30-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
复制
1yum install-y openssl-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/readline.cmake:93 (MESSAGE):
23  Curses library not found.  Please install appropriate package,
24
25      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. # 提示,找不到 Curses 库。请安装合适的软件包,删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,包名称是 libncurses5-dev,在 Redhat 及其衍生产品上是 ncurses-devel。
26Call Stack (most recent call first):
27  cmake/readline.cmake:127 (FIND_CURSES)
28  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
29  CMakeLists.txt:1930 (MYSQL_CHECK_EDITLINE)
30
31
32-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
复制
1yum install-y ncurses-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
23  Cannot find RPC development libraries.  You need to install the required
24  packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
25
26    Debian/Ubuntu:              aptinstall libtirpc-dev
27    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
28    SuSE:                       zypperinstall glibc-devel
29
30Call Stack (most recent call first):
31  cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)
32  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
33
34
35CMake Error at cmake/rpc.cmake:113 (MESSAGE):
36  Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
37Call Stack (most recent call first):
38  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
39
40
41-- Configuring incomplete, errors occurred!

安装libtirpc-devel包:

代码语言:javascript
复制
1[root@rocky9 mysql-8.0.42]# yum install -y libtirpc-devel
2Last metadata expiration check: 0:41:55 ago on Tue 27 May 2025 06:13:47 PM CST.
3No match for argument: libtirpc-devel
4Error: Unable to find a match: libtirpc-devel
5# 没有找到libtirpc-devel包
6
7# Rocky 9要启用devel镜像仓库
8dnf config-manager --set-enabled devel
9
10[root@almalinux9 mysql-8.0.42]# yum install -y libtirpc-devel
11Last metadata expiration check: 0:14:24 ago on Tue 27 May 2025 08:05:29 PM CST.
12No match for argument: libtirpc-devel
13Error: Unable to find a match: libtirpc-devel
14# 没有找到libtirpc-devel包
15
16# Almalinux 9和CentOS Stream 9要启用crb镜像仓库
17dnf config-manager --set-enabled crb
18
19yum install-y libtirpc-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
23  Cannot find rpcgen executable.  You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall rpcsvc-proto
26    RedHat/Fedora/Oracle Linux: yum install rpcgen
27    SuSE:                       zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30  plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)
31  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
32
33
34CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):
35  Could not find rpcgen
36Call Stack (most recent call first):
37  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
38
39
40-- Configuring incomplete, errors occurred!

安装rpcgen包:

代码语言:javascript
复制
1[root@rocky8 mysql-8.0.42]# yum install -y rpcgen
2Last metadata expiration check: 0:13:53 ago on Tue 27 May 2025 09:26:15 PM CST.
3No match for argument: rpcgen
4Error: Unable to find a match: rpcgen
5# 提示,没有找到rpcgen包
6
7[root@almalinux8 mysql-8.0.42]# yum install -y rpcgen
8Last metadata expiration check: 0:13:53 ago on Tue 27 May 2025 09:26:15 PM CST.
9No match for argument: rpcgen
10Error: Unable to find a match: rpcgen
11# 提示,没有找到rpcgen包
12
13[root@centos8 mysql-8.0.42]# yum install -y rpcgen
14Last metadata expiration check: 0:10:44 ago on Wed 28 May 2025 09:56:36 AM CST.
15No match for argument: rpcgen
16Error: Unable to find a match: rpcgen
17# 提示,找不到rpcgen包
18
19# Rocky 8、Almalinux 8和CentOS Stream 8要启用powertools镜像仓库
20dnf config-manager --set-enabled powertools
21
22yum install-y rpcgen

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22# 正常会有类似如下的输出
23-- Configuring done(44.2s)
24-- Generating done(3.3s)
25-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
复制
1make-j$(nproc)&&makeinstall

总结编译过程:

代码语言:javascript
复制
1# Rocky 9要启用devel镜像仓库
2dnf config-manager --set-enabled devel
3
4# Almalinux 9和CentOS Stream 9要启用crb镜像仓库
5dnf config-manager --set-enabled crb
6
7# Rocky 8、Almalinux 8和CentOS Stream 8要启用powertools镜像仓库
8dnf config-manager --set-enabled powertools
9
10# 安装依赖包
11yum install-y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen
12
13# 进入mysql包解压的目录
14cd mysql-8.0.42/
15
16# 执行cmake
17cmake .\
18-DCMAKE_INSTALL_PREFIX=/apps/mysql \
19-DMYSQL_DATADIR=/data/mysql/ \
20-DSYSCONFDIR=/etc/ \
21-DWITH_INNOBASE_STORAGE_ENGINE=1\
22-DWITH_ARCHIVE_STORAGE_ENGINE=1\
23-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
24-DWITH_DEBUG=0\
25-DWITH_SSL=system \
26-DWITH_LIBWRAP=0\
27-DENABLED_LOCAL_INFILE=1\
28-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
29-DDEFAULT_CHARSET=utf8mb4 \
30-DDEFAULT_COLLATION=utf8mb4_general_ci \
31-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
32-DFORCE_INSOURCE_BUILD=1\
33-DWITH_SYSTEMD=1
34
35# 执行make
36make-j$(nproc)&&makeinstall
2.4.1.4.3 CentOS 7

进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
复制
1yum install-y cmake

执行cmake:

代码语言:javascript
复制
1cmake .\
2-DCMAKE_INSTALL_PREFIX=/apps/mysql \
3-DMYSQL_DATADIR=/data/mysql/ \
4-DSYSCONFDIR=/etc/ \
5-DWITH_INNOBASE_STORAGE_ENGINE=1\
6-DWITH_ARCHIVE_STORAGE_ENGINE=1\
7-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
8-DWITH_DEBUG=0\
9-DWITH_SSL=system \
10-DWITH_LIBWRAP=0\
11-DENABLED_LOCAL_INFILE=1\
12-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
13-DDEFAULT_CHARSET=utf8mb4 \
14-DDEFAULT_COLLATION=utf8mb4_general_ci \
15-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
16-DFORCE_INSOURCE_BUILD=1\
17-DWITH_SYSTEMD=1
18...
19-- Running cmake version 2.8.12.2
20CMake Warning at CMakeLists.txt:75 (MESSAGE):
21  Please use cmake3 rather than cmake on this platform
22
23
24-- Please install cmake3 (yum install cmake3)
25CMake Error at CMakeLists.txt:110 (CMAKE_MINIMUM_REQUIRED):
26  CMake 3.11.2 or higher is required.  You are running version 2.8.12.2 # 提示,需要 CMake 3.11.2 或更高版本。您运行的是版本 2.8.12.2。
27
28
29-- Configuring incomplete, errors occurred!

安装cmake:

去“https://cmake.org/download/”网址下载cmake二进制包,如图54所示。

t54
t54

图54 下载cmake二进制包

代码语言:javascript
复制
1# 卸载cmake
2yum remove -y cmake
3
4cd..
5
6# github下载地址:
7wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-linux-x86_64.tar.gz
8
9# 国内下载地址:
10wget https://cmake.org/files/v3.31/cmake-3.31.7-linux-x86_64.tar.gz
11tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
12ln-s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/
13
14[root@centos7 src]# cmake --version
15cmake version 3.31.7
16
17CMake suite maintained and supported by Kitware (kitware.com/cmake).

再次进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning:
23  No source or binary directory provided.  Both will be assumed to be the
24  same as the current working directory, but note that this warning will
25  become a fatal error in future CMake releases.
26
27
28-- Running cmake version 3.31.7
29-- Could NOT find Git (missing: GIT_EXECUTABLE)
30Hint: The project()command has not yet been called.  It sets up system-specific search paths.
31-- This is .el7. as found from 'rpm -qf /'
32-- Looking for a devtoolset compiler
33CMake Warning at CMakeLists.txt:404 (MESSAGE):
34  Could not find devtoolset compiler/linker in /opt/rh/devtoolset-11
35
36
37CMake Warning at CMakeLists.txt:406 (MESSAGE):
38  You need to install the required packages: # 您需要安装所需的软件包:
39
40   yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils
41
42
43
44CMake Error at CMakeLists.txt:408 (MESSAGE):
45  Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly. # 提示,需要安装gcc和gcc-c++
46
47
48-- Configuring incomplete, errors occurred!

安装依赖包:

代码语言:javascript
复制
1[root@centos7 mysql-8.0.42]# yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++ 
2Loaded plugins: fastestmirror
3Loading mirror speeds from cached hostfile
4No package devtoolset-11-gcc available.
5No package devtoolset-11-gcc-c++ available.
6No package devtoolset-11-binutil available.
7Error: Nothing to do
8# 找不到依赖包
9
10# 安装sclo镜像源包
11yum install-y centos-release-scl
12
13# 替换镜像仓库地址
14MIRROR=mirrors.tencent.com
15OS_RELEASE_FULL_VERSION=`cat /etc/centos-release |sed-rn's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`
16sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^# baseurl=|baseurl=|g'-e's|^#baseurl=|baseurl=|g'-e's|http://mirror.centos.org/centos|https://'${MIRROR}'/centos-vault|g'-e"s/7/${OS_RELEASE_FULL_VERSION}/g"  /etc/yum.repos.d/CentOS-SCLo-*.repo
17
18yum install-y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22Not a supported openssl version inWITH_SSL=system.
23Make sure you have specified a supported SSL version.
24Valid options are :
25openssl[0-9]+ (use alternative system library)
26yes(synonym for system)
27</path/to/custom/openssl/installation>
28
29CMake Error at cmake/ssl.cmake:84 (MESSAGE):
30  Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
31
32Call Stack (most recent call first):
33  cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)
34  CMakeLists.txt:1826 (MYSQL_CHECK_SSL)
35
36
37-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
复制
1yum install-y openssl-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/readline.cmake:93 (MESSAGE):
23  Curses library not found.  Please install appropriate package,
24
25      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.  # 提示,找不到 Curses 库。请安装合适的软件包,删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,包名称是 libncurses5-dev,在 Redhat 及其衍生产品上是 ncurses-devel。
26Call Stack (most recent call first):
27  cmake/readline.cmake:127 (FIND_CURSES)
28  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
29  CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)
30
31
32-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
复制
1yum install-y ncurses-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22-- Configuring done(23.9s)
23-- Generating done(4.8s)
24-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
复制
1make-j$(nproc)&&makeinstall

总结编译过程:

代码语言:javascript
复制
1# 安装sclo镜像源包
2yum install-y centos-release-scl
3
4# 替换镜像仓库地址
5MIRROR=mirrors.tencent.com
6OS_RELEASE_FULL_VERSION=`cat /etc/centos-release |sed-rn's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`
7sed-i.bak-e's|^mirrorlist=|#mirrorlist=|g'-e's|^# baseurl=|baseurl=|g'-e's|^#baseurl=|baseurl=|g'-e's|http://mirror.centos.org/centos|https://'${MIRROR}'/centos-vault|g'-e"s/7/${OS_RELEASE_FULL_VERSION}/g"  /etc/yum.repos.d/CentOS-SCLo-*.repo
8
9# 安装依赖包
10yum install-y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++ openssl-devel ncurses-devel
11
12# 安装cmake
13wget https://cmake.org/files/v3.31/cmake-3.31.7-linux-x86_64.tar.gz
14tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
15ln-s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/
16
17# 进入mysql包解压的目录:
18cd mysql-8.0.42/
19
20# 执行cmake
21cmake .\
22-DCMAKE_INSTALL_PREFIX=/apps/mysql \
23-DMYSQL_DATADIR=/data/mysql/ \
24-DSYSCONFDIR=/etc/ \
25-DWITH_INNOBASE_STORAGE_ENGINE=1\
26-DWITH_ARCHIVE_STORAGE_ENGINE=1\
27-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
28-DWITH_DEBUG=0\
29-DWITH_SSL=system \
30-DWITH_LIBWRAP=0\
31-DENABLED_LOCAL_INFILE=1\
32-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
33-DDEFAULT_CHARSET=utf8mb4 \
34-DDEFAULT_COLLATION=utf8mb4_general_ci \
35-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
36-DFORCE_INSOURCE_BUILD=1\
37-DWITH_SYSTEMD=1
38
39# 执行make
40make-j$(nproc)&&makeinstall
2.4.1.4.4 openEuler 22.03/24.03 LTS和Kylin Server V11

进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
复制
1yum install-y cmake

执行cmake:

代码语言:javascript
复制
1cmake .\
2-DCMAKE_INSTALL_PREFIX=/apps/mysql \
3-DMYSQL_DATADIR=/data/mysql/ \
4-DSYSCONFDIR=/etc/ \
5-DWITH_INNOBASE_STORAGE_ENGINE=1\
6-DWITH_ARCHIVE_STORAGE_ENGINE=1\
7-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
8-DWITH_DEBUG=0\
9-DWITH_SSL=system \
10-DWITH_LIBWRAP=0\
11-DENABLED_LOCAL_INFILE=1\
12-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
13-DDEFAULT_CHARSET=utf8mb4 \
14-DDEFAULT_COLLATION=utf8mb4_general_ci \
15-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
16-DFORCE_INSOURCE_BUILD=1\
17-DWITH_SYSTEMD=1
18...
19CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool. # 提示,CMake 错误:CMake 找不到与“Unix Makefiles”对应的构建程序。CMAKE_MAKE_PROGRAM 未设置。您可能需要选择其他构建工具。需要安装make。
20CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake 错误:EnableLanguage 后未设置 CMAKE_C_COMPILER,需要安装gcc。
21CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER,需要安装gcc-c++。
22-- Configuring incomplete, errors occurred!

安装make、gcc和gcc-c++包:

代码语言:javascript
复制
1yum install-ymake gcc gcc-c++

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/ssl.cmake:84 (MESSAGE):
23  Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
24
25Call Stack (most recent call first):
26  cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)
27  CMakeLists.txt:1826 (MYSQL_CHECK_SSL)
28
29
30-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
复制
1yum install-y openssl-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/readline.cmake:93 (MESSAGE):
23  Curses library not found.  Please install appropriate package,
24
25      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. # 提示,找不到 Curses 库。请安装合适的软件包,删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,包名称是 libncurses5-dev,在 Redhat 及其衍生产品上是 ncurses-devel。
26Call Stack (most recent call first):
27  cmake/readline.cmake:127 (FIND_CURSES)
28  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
29  CMakeLists.txt:1930 (MYSQL_CHECK_EDITLINE)
30
31
32-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
复制
1yum install-y ncurses-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1UILD=1\
21-DWITH_SYSTEMD=1
22...
23CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
24  Cannot find RPC development libraries.  You need to install the required
25  packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
26
27    Debian/Ubuntu:              aptinstall libtirpc-dev
28    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
29    SuSE:                       zypperinstall glibc-devel
30
31Call Stack (most recent call first):
32  cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)
33  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
34
35
36CMake Error at cmake/rpc.cmake:113 (MESSAGE):
37  Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
38Call Stack (most recent call first):
39  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
40
41
42-- Configuring incomplete, errors occurred!

安装libtirpc-devel包:

代码语言:javascript
复制
1yum install-y libtirpc-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
23  Cannot find rpcgen executable.  You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall rpcsvc-proto
26    RedHat/Fedora/Oracle Linux: yum install rpcgen
27    SuSE:                       zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30  plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)
31  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
32
33
34CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):
35  Could not find rpcgen
36Call Stack (most recent call first):
37  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
38
39
40-- Configuring incomplete, errors occurred!

安装rpcgen包:

代码语言:javascript
复制
1yum install-y rpcgen

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22# 正常会有类似如下的输出
23-- Configuring done(45.9s)
24-- Generating done(4.0s)
25-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
复制
1make-j$(nproc)&&makeinstall

总结编译过程:

代码语言:javascript
复制
1# 安装依赖包
2yum install-y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen
3
4# 进入mysql包解压的目录
5cd mysql-8.0.42/
6
7# 执行cmake
8cmake .\
9-DCMAKE_INSTALL_PREFIX=/apps/mysql \
10-DMYSQL_DATADIR=/data/mysql/ \
11-DSYSCONFDIR=/etc/ \
12-DWITH_INNOBASE_STORAGE_ENGINE=1\
13-DWITH_ARCHIVE_STORAGE_ENGINE=1\
14-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
15-DWITH_DEBUG=0\
16-DWITH_SSL=system \
17-DWITH_LIBWRAP=0\
18-DENABLED_LOCAL_INFILE=1\
19-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
20-DDEFAULT_CHARSET=utf8mb4 \
21-DDEFAULT_COLLATION=utf8mb4_general_ci \
22-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
23-DFORCE_INSOURCE_BUILD=1\
24-DWITH_SYSTEMD=1
25
26# 执行make
27make-j$(nproc)&&makeinstall
2.4.1.4.5 OpenCloudOS 9

进入mysql包解压的目录:

代码语言:javascript
复制
1cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
复制
1yum install-y cmake

执行cmake:

代码语言:javascript
复制
1cmake .\
2-DCMAKE_INSTALL_PREFIX=/apps/mysql \
3-DMYSQL_DATADIR=/data/mysql/ \
4-DSYSCONFDIR=/etc/ \
5-DWITH_INNOBASE_STORAGE_ENGINE=1\
6-DWITH_ARCHIVE_STORAGE_ENGINE=1\
7-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
8-DWITH_DEBUG=0\
9-DWITH_SSL=system \
10-DWITH_LIBWRAP=0\
11-DENABLED_LOCAL_INFILE=1\
12-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
13-DDEFAULT_CHARSET=utf8mb4 \
14-DDEFAULT_COLLATION=utf8mb4_general_ci \
15-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
16-DFORCE_INSOURCE_BUILD=1\
17-DWITH_SYSTEMD=1
18...
19CMake Warning:
20  No source or binary directory provided.  Both will be assumed to be the
21  same as the current working directory, but note that this warning will
22  become a fatal error in future CMake releases.
23
24
25-- Running cmake version 3.26.5
26-- Could NOT find Git (missing: GIT_EXECUTABLE)
27-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
28-- MySQL 8.0.42
29-- The C compiler identification is unknown
30-- The CXX compiler identification is unknown
31CMake Error at CMakeLists.txt:585 (PROJECT):
32  No CMAKE_C_COMPILER could be found.
33
34  Tell CMake where to find the compiler by setting either the environment
35  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
36  the compiler, or to the compiler name if it is in the PATH.# 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。
37
38
39CMake Error at CMakeLists.txt:585 (PROJECT):
40  No CMAKE_CXX_COMPILER could be found.
41
42  Tell CMake where to find the compiler by setting either the environment
43  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
44  to the compiler, or to the compiler name if it is in the PATH.# 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装gcc-c++。
45
46
47
48-- Configuring incomplete, errors occurred!

安装gcc和gcc-c++包:

代码语言:javascript
复制
1yum install-y gcc gcc-c++

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/systemd.cmake:60 (MESSAGE):
23  Unable to detect systemd support on build machine, Aborting cmake build. # 提示,无法在构建计算机上检测到 systemd 支持,中止 cmake 构建。
24Call Stack (most recent call first):
25  cmake/systemd.cmake:80 (MYSQL_CHECK_SYSTEMD)
26  CMakeLists.txt:1597 (INCLUDE)
27
28
29-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
复制
1yum install-y systemd-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22Not a supported openssl version inWITH_SSL=system.
23Make sure you have specified a supported SSL version.
24Valid options are :
25openssl[0-9]+ (use alternative system library)
26yes(synonym for system)
27</path/to/custom/openssl/installation>
28
29CMake Error at cmake/ssl.cmake:84 (MESSAGE):
30  Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
31
32Call Stack (most recent call first):
33  cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)
34  CMakeLists.txt:1826 (MYSQL_CHECK_SSL)
35
36
37-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
复制
1yum install-y openssl-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Error at cmake/readline.cmake:93 (MESSAGE):
23  Curses library not found.  Please install appropriate package,
24
25      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. # 提示,找不到 Curses 库。请安装合适的软件包,删除 CMakeCache.txt 并重新运行 cmake。在 Debian/Ubuntu 上,包名称是 libncurses5-dev,在 Redhat 及其衍生产品上是 ncurses-devel。
26Call Stack (most recent call first):
27  cmake/readline.cmake:127 (FIND_CURSES)
28  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
29  CMakeLists.txt:1930 (MYSQL_CHECK_EDITLINE)
30
31
32-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
复制
1yum install-y ncurses-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
23  Cannot find RPC development libraries.  You need to install the required
24  packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
25
26    Debian/Ubuntu:              aptinstall libtirpc-dev
27    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
28    SuSE:                       zypperinstall glibc-devel
29
30Call Stack (most recent call first):
31  cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)
32  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
33
34
35CMake Error at cmake/rpc.cmake:113 (MESSAGE):
36  Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
37Call Stack (most recent call first):
38  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
39
40
41-- Configuring incomplete, errors occurred!

安装libtirpc-devel包:

代码语言:javascript
复制
1yum install-y libtirpc-devel

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
23  Cannot find rpcgen executable.  You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall rpcsvc-proto
26    RedHat/Fedora/Oracle Linux: yum install rpcgen
27    SuSE:                       zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30  plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)
31  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
32
33
34CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):
35  Could not find rpcgen
36Call Stack (most recent call first):
37  plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
38
39
40-- Configuring incomplete, errors occurred!

安装rpcgen包:

代码语言:javascript
复制
1yum install-y rpcgen

继续执行cmake:

代码语言:javascript
复制
1# 再次执行cmake之前先删除“CMakeCache.txt”文件
2rm-f CMakeCache.txt
3
4cmake .\
5-DCMAKE_INSTALL_PREFIX=/apps/mysql \
6-DMYSQL_DATADIR=/data/mysql/ \
7-DSYSCONFDIR=/etc/ \
8-DWITH_INNOBASE_STORAGE_ENGINE=1\
9-DWITH_ARCHIVE_STORAGE_ENGINE=1\
10-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
11-DWITH_DEBUG=0\
12-DWITH_SSL=system \
13-DWITH_LIBWRAP=0\
14-DENABLED_LOCAL_INFILE=1\
15-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
16-DDEFAULT_CHARSET=utf8mb4 \
17-DDEFAULT_COLLATION=utf8mb4_general_ci \
18-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
19-DFORCE_INSOURCE_BUILD=1\
20-DWITH_SYSTEMD=1
21...
22-- Configuring done(45.9s)
23-- Generating done(4.1s)
24-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
复制
1make-j$(nproc)&&makeinstall

总结编译过程:

代码语言:javascript
复制
1# 安装依赖包
2yum install-y cmake gcc gcc-c++ systemd-devel openssl-devel ncurses-devel libtirpc-devel rpcgen
3
4# 进入mysql包解压的目录
5cd mysql-8.0.42/
6
7# 执行cmake
8cmake .\
9-DCMAKE_INSTALL_PREFIX=/apps/mysql \
10-DMYSQL_DATADIR=/data/mysql/ \
11-DSYSCONFDIR=/etc/ \
12-DWITH_INNOBASE_STORAGE_ENGINE=1\
13-DWITH_ARCHIVE_STORAGE_ENGINE=1\
14-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
15-DWITH_DEBUG=0\
16-DWITH_SSL=system \
17-DWITH_LIBWRAP=0\
18-DENABLED_LOCAL_INFILE=1\
19-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
20-DDEFAULT_CHARSET=utf8mb4 \
21-DDEFAULT_COLLATION=utf8mb4_general_ci \
22-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
23-DFORCE_INSOURCE_BUILD=1\
24-DWITH_SYSTEMD=1
25
26# 执行make
27make-j$(nproc)&&makeinstall

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.4 源码编译安装
    • 2.4.1 MySQL 8.0
      • 2.4.1.1 用户和组
      • 2.4.1.2 准备数据库目录
      • 2.4.1.3 下载并解压缩源码包
      • 2.4.1.4 源码编译安装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档