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

MySQL 8.0源码编译安装(二)

原创
作者头像
Raymond运维
发布2025-09-22 23:23:53
发布2025-09-22 23:23:53
3250
举报
文章被收录于专栏:干货分享干货分享
2.4.1.4.6 Kylin Server V10

进入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.16.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
29CMake 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。
30CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake 错误:EnableLanguage 后未设置 CMAKE_C_COMPILER,需要安装gcc。
31CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER,需要安装gcc-c++。
32-- Configuring incomplete, errors occurred!
33See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".

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

代码语言:javascript
复制
1yum install-ymake gcc gcc-c++
2
3[root@kylin10 mysql-8.0.42]# gcc --version
4gcc (GCC)7.3.0
5Copyright (C)2017 Free Software Foundation, Inc.
6This is free software; see the sourcefor copying conditions.  There is NO
7warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9[root@kylin10 mysql-8.0.42]# g++ --version
10g++ (GCC)7.3.0
11Copyright (C)2017 Free Software Foundation, Inc.
12This is free software; see the sourcefor copying conditions.  There is NO
13warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gcc

编译安装gcc:

代码语言:javascript
复制
1cd..
2
3# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
4wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
5tar xf gcc-11.5.0.tar.gz
6cd gcc-11.5.0
7
8# 下载gcc依赖包
9./contrib/download_prerequisites
102025-05-04 11:56:53 URL:https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] ->"gmp-6.1.0.tar.bz2"[1]
112025-05-04 11:56:56 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2 [1287202/1287202] ->"mpfr-3.1.6.tar.bz2"[1]
122025-05-04 11:56:59 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] ->"mpc-1.0.3.tar.gz"[1]
132025-05-04 11:57:02 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] ->"isl-0.18.tar.bz2"[1]
14gmp-6.1.0.tar.bz2: OK
15mpfr-3.1.6.tar.bz2: OK
16mpc-1.0.3.tar.gz: OK
17isl-0.18.tar.bz2: OK
18All prerequisites downloaded successfully.
19
20mkdir build
21cd build/
22
23# 执行configure
24../configure --prefix=/usr --disable-multilib
25...
26configure: creating ./config.status
27config.status: creating Makefile
28
29# 执行make
30make-j$(nproc)&&makeinstall
31...
32make[4]: Nothing to be donefor'install-data-am'.
33make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
34make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
35make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
36make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
37
38[root@kylin10 build]# gcc --version
39gcc (GCC)11.5.0
40Copyright (C)2021 Free Software Foundation, Inc.
41This is free software; see the sourcefor copying conditions.  There is NO
42warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

再次进入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...
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!
38See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
39See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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!
33See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
34See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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!
42See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
43See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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!
41See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
42See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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
24-- Generating done
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# 编译gcc
5wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
6tar xf gcc-11.5.0.tar.gz
7cd gcc-11.5.0
8./contrib/download_prerequisites
9mkdir build
10cd build/
11../configure --prefix=/usr --disable-multilib
12make-j$(nproc)&&makeinstall
13
14# 进入mysql包解压的目录
15cd../../mysql-8.0.42/
16
17# 执行cmake
18cmake .\
19-DCMAKE_INSTALL_PREFIX=/apps/mysql \
20-DMYSQL_DATADIR=/data/mysql/ \
21-DSYSCONFDIR=/etc/ \
22-DWITH_INNOBASE_STORAGE_ENGINE=1\
23-DWITH_ARCHIVE_STORAGE_ENGINE=1\
24-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
25-DWITH_DEBUG=0\
26-DWITH_SSL=system \
27-DWITH_LIBWRAP=0\
28-DENABLED_LOCAL_INFILE=1\
29-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
30-DDEFAULT_CHARSET=utf8mb4 \
31-DDEFAULT_COLLATION=utf8mb4_general_ci \
32-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
33-DFORCE_INSOURCE_BUILD=1\
34-DWITH_SYSTEMD=1
35
36# 执行make
37make-j$(nproc)&&makeinstall
2.4.1.4.7 UOS Server V20

编译安装gcc:

代码语言:javascript
复制
1[root@uos20 src]# gcc --version
2gcc (GCC)7.3.0
3Copyright (C)2017 Free Software Foundation, Inc.
4This is free software; see the sourcefor copying conditions.  There is NO
5warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
6
7[root@uos20 src]# g++ --version
8g++ (GCC)7.3.0
9Copyright (C)2017 Free Software Foundation, Inc.
10This is free software; see the sourcefor copying conditions.  There is NO
11warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gccc
13
14# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
15wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
16tar xf gcc-11.5.0.tar.gz
17cd gcc-11.5.0
18
19# 下载gcc依赖包
20./contrib/download_prerequisites
212025-05-04 11:56:53 URL:https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] ->"gmp-6.1.0.tar.bz2"[1]
222025-05-04 11:56:56 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2 [1287202/1287202] ->"mpfr-3.1.6.tar.bz2"[1]
232025-05-04 11:56:59 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] ->"mpc-1.0.3.tar.gz"[1]
242025-05-04 11:57:02 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] ->"isl-0.18.tar.bz2"[1]
25gmp-6.1.0.tar.bz2: OK
26mpfr-3.1.6.tar.bz2: OK
27mpc-1.0.3.tar.gz: OK
28isl-0.18.tar.bz2: OK
29All prerequisites downloaded successfully.
30
31mkdir build
32cd build/
33
34# 执行configure
35../configure --prefix=/usr --disable-multilib
36...
37configure: creating ./config.status
38config.status: creating Makefile
39
40# 执行make
41make-j$(nproc)&&makeinstall
42...
43make[4]: Nothing to be donefor'install-data-am'.
44make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
45make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
46make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
47make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
48
49[root@anolis8 build]# gcc --version
50gcc (GCC)11.5.0
51Copyright (C)2021 Free Software Foundation, Inc.
52This is free software; see the sourcefor copying conditions.  There is NO
53warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

进入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 cmake/readline.cmake:93 (MESSAGE):
20  Curses library not found.  Please install appropriate package,
21
22      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。
23Call Stack (most recent call first):
24  cmake/readline.cmake:127 (FIND_CURSES)
25  cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
26  CMakeLists.txt:1930 (MYSQL_CHECK_EDITLINE)
27
28
29-- Configuring incomplete, errors occurred!
30See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
31See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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!
42See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
43See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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!
41See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
42See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装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
23-- Generating done
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 ncurses-devel libtirpc-devel rpcgen
3
4# 编译gcc
5wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
6tar xf gcc-11.5.0.tar.gz
7cd gcc-11.5.0
8./contrib/download_prerequisites
9mkdir build
10cd build/
11../configure --prefix=/usr --disable-multilib
12make-j$(nproc)&&makeinstall
13
14# 进入mysql包解压的目录
15cd../../mysql-8.0.42/
16
17# 执行cmake
18cmake .\
19-DCMAKE_INSTALL_PREFIX=/apps/mysql \
20-DMYSQL_DATADIR=/data/mysql/ \
21-DSYSCONFDIR=/etc/ \
22-DWITH_INNOBASE_STORAGE_ENGINE=1\
23-DWITH_ARCHIVE_STORAGE_ENGINE=1\
24-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
25-DWITH_DEBUG=0\
26-DWITH_SSL=system \
27-DWITH_LIBWRAP=0\
28-DENABLED_LOCAL_INFILE=1\
29-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
30-DDEFAULT_CHARSET=utf8mb4 \
31-DDEFAULT_COLLATION=utf8mb4_general_ci \
32-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
33-DFORCE_INSOURCE_BUILD=1\
34-DWITH_SYSTEMD=1
35
36# 执行make
37make-j$(nproc)&&makeinstall
2.4.1.4.8 openSUSE 15

进入mysql包解压的目录:

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

安装cmake包:

代码语言:javascript
复制
1zypperinstall-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.28.3
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-- Configuring incomplete, errors occurred!

安装gcc和gcc-c++包:

代码语言:javascript
复制
1zypperinstall-y gcc gcc-c++
2
3opensuse15:/usr/local/src/mysql-8.0.42 # gcc --version
4gcc (SUSE Linux)7.5.0
5Copyright (C)2017 Free Software Foundation, Inc.
6This is free software; see the sourcefor copying conditions.  There is NO
7warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8
9opensuse15:/usr/local/src/mysql-8.0.42 # g++ --version
10g++ (SUSE Linux)7.5.0
11Copyright (C)2017 Free Software Foundation, Inc.
12This is free software; see the sourcefor copying conditions.  There is NO
13warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gcc

编译安装gcc:

代码语言:javascript
复制
1cd..
2
3# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
4wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
5tar xf gcc-11.5.0.tar.gz
6cd gcc-11.5.0
7
8# 下载gcc依赖包
9./contrib/download_prerequisites
102025-05-04 15:17:24 URL:https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] ->"gmp-6.1.0.tar.bz2"[1]
112025-05-04 15:17:46 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2 [1287202/1287202] ->"mpfr-3.1.6.tar.bz2"[1]
122025-05-04 15:18:00 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] ->"mpc-1.0.3.tar.gz"[1]
132025-05-04 15:18:26 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] ->"isl-0.18.tar.bz2"[1]
14gmp-6.1.0.tar.bz2: OK
15mpfr-3.1.6.tar.bz2: OK
16mpc-1.0.3.tar.gz: OK
17isl-0.18.tar.bz2: OK
18All prerequisites downloaded successfully.
19
20mkdir build
21cd build/
22
23# 执行configure
24../configure --prefix=/usr --disable-multilib
25...
26configure: creating ./config.status
27config.status: creating Makefile
28
29# 执行make
30make-j$(nproc)&&makeinstall
31...
32make[4]: Nothing to be donefor'install-data-am'.
33make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
34make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
35make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
36make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
37
38opensuse15:/usr/local/src/gcc-11.5.0/build # gcc --version
39gcc (GCC)11.5.0
40Copyright (C)2021 Free Software Foundation, Inc.
41This is free software; see the sourcefor copying conditions.  There is NO
42warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

再次进入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...
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!

安装libopenssl-devel包:

代码语言:javascript
复制
zypper install -y libopenssl-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
复制
1zypperinstall-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 # 注意,它提示安装的这个包是不行的,要安装libtirpc-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
复制
1zypperinstall-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 # 注意,它提示安装的这个包是不行的,要安装rpcgen
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
复制
1zypperinstall-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(32.6s)
23-- Generating done(2.1s)
24-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

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

总结编译过程:

代码语言:javascript
复制
1# 安装依赖包
2zypperinstall-y cmake gcc gcc-c++ libopenssl-devel ncurses-devel libtirpc-devel rpcgen
3
4# 编译gcc
5wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
6tar xf gcc-11.5.0.tar.gz
7cd gcc-11.5.0
8./contrib/download_prerequisites
9mkdir build
10cd build/
11../configure --prefix=/usr --disable-multilib
12make-j$(nproc)&&makeinstall
13
14# 进入mysql包解压的目录
15cd../../mysql-8.0.42/
16
17# 执行cmake
18cmake .\
19-DCMAKE_INSTALL_PREFIX=/apps/mysql \
20-DMYSQL_DATADIR=/data/mysql/ \
21-DSYSCONFDIR=/etc/ \
22-DWITH_INNOBASE_STORAGE_ENGINE=1\
23-DWITH_ARCHIVE_STORAGE_ENGINE=1\
24-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
25-DWITH_DEBUG=0\
26-DWITH_SSL=system \
27-DWITH_LIBWRAP=0\
28-DENABLED_LOCAL_INFILE=1\
29-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
30-DDEFAULT_CHARSET=utf8mb4 \
31-DDEFAULT_COLLATION=utf8mb4_general_ci \
32-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
33-DFORCE_INSOURCE_BUILD=1\
34-DWITH_SYSTEMD=1
35
36# 执行make
37make-j$(nproc)&&makeinstall
2.4.1.4.9 Ubuntu Server 24.04 LTS

进入mysql包解压的目录:

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

安装cmake包:

代码语言:javascript
复制
1apt update
2aptinstall-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.28.3
26-- Found Git: /usr/bin/git (found version "2.43.0")
27-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
28-- MySQL 8.0.42
29-- The C compiler identification is GNU 13.3.0
30-- The CXX compiler identification is unknown
31-- Detecting C compiler ABI info
32-- Detecting C compiler ABI info - done
33-- Check for working C compiler: /usr/bin/cc - skipped
34-- Detecting C compile features
35-- Detecting C compile features - done
36CMake Error at CMakeLists.txt:585 (PROJECT):
37  No CMAKE_CXX_COMPILER could be found.
38
39  Tell CMake where to find the compiler by setting either the environment
40  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
41  to the compiler, or to the compiler name if it is in the PATH.# 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。
42
43
44-- Configuring incomplete, errors occurred!

安装g++包:

代码语言:javascript
复制
1aptinstall-y g++

继续执行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!

安装libssl-dev包:

代码语言:javascript
复制
1aptinstall-y libssl-dev

继续执行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!

安装libncurses5-dev包:

代码语言:javascript
复制
1aptinstall-y libncurses5-dev

继续执行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/pkg-config.cmake:30 (MESSAGE):
23  Cannot find pkg-config.  You need to install the required package: # 找不到 pkg-config。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall pkg-config
26    RedHat/Fedora/Oracle Linux: yum install pkg-config
27    SuSE:                       zypperinstall pkg-config
28
29Call Stack (most recent call first):
30  cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)
31  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
32
33
34CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
35  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
36Call Stack (most recent call first):
37  /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
38  /usr/share/cmake-3.28/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
39  cmake/pkg-config.cmake:37 (FIND_PACKAGE)
40  cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)
41  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
42
43
44-- Configuring incomplete, errors occurred!

安装pkg-config包:

代码语言:javascript
复制
1aptinstall-y pkg-config

继续执行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-dev包:

代码语言:javascript
复制
1aptinstall-y libtirpc-dev

继续执行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(47.0s)
23-- Generating done(3.4s)
24-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

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

总结编译过程:

代码语言:javascript
复制
1# 安装依赖包
2apt update
3aptinstall-y cmake g++ libssl-dev libncurses5-dev pkg-config libtirpc-dev
4
5# 进入mysql包解压的目录
6cd mysql-8.0.42/
7
8# 执行cmake
9cmake .\
10-DCMAKE_INSTALL_PREFIX=/apps/mysql \
11-DMYSQL_DATADIR=/data/mysql/ \
12-DSYSCONFDIR=/etc/ \
13-DWITH_INNOBASE_STORAGE_ENGINE=1\
14-DWITH_ARCHIVE_STORAGE_ENGINE=1\
15-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
16-DWITH_DEBUG=0\
17-DWITH_SSL=system \
18-DWITH_LIBWRAP=0\
19-DENABLED_LOCAL_INFILE=1\
20-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
21-DDEFAULT_CHARSET=utf8mb4 \
22-DDEFAULT_COLLATION=utf8mb4_general_ci \
23-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
24-DFORCE_INSOURCE_BUILD=1\
25-DWITH_SYSTEMD=1
26
27# 执行make
28make-j$(nproc)&&makeinstall
2.4.1.4.10 Ubuntu Server 20.04/22.04 LTS和Debian 11/12

进入mysql包解压的目录:

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

安装cmake包:

代码语言:javascript
复制
1apt update
2aptinstall-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.22.1
26-- Found Git: /usr/bin/git (found version "2.34.1")
27-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
28-- MySQL 8.0.42
29-- The C compiler identification is GNU 11.4.0
30-- The CXX compiler identification is unknown
31-- Detecting C compiler ABI info
32-- Detecting C compiler ABI info - done
33-- Check for working C compiler: /usr/bin/cc - skipped
34-- Detecting C compile features
35-- Detecting C compile features - done
36CMake Error at CMakeLists.txt:585 (PROJECT):
37  No CMAKE_CXX_COMPILER could be found.
38
39  Tell CMake where to find the compiler by setting either the environment
40  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
41  to the compiler, or to the compiler name if it is in the PATH.# 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。
42
43
44-- Configuring incomplete, errors occurred!
45See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
46See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装g++包:

代码语言:javascript
复制
1aptinstall-y g++

继续执行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!
38See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
39See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装libssl-dev包:

代码语言:javascript
复制
1aptinstall-y libssl-dev

继续执行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!
33See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
34See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装libncurses5-dev包:

代码语言:javascript
复制
1aptinstall-y libncurses5-dev

继续执行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/pkg-config.cmake:30 (MESSAGE):
23  Cannot find pkg-config.  You need to install the required package: # 找不到 pkg-config。您需要安装所需的软件包:
24
25    Debian/Ubuntu:              aptinstall pkg-config
26    RedHat/Fedora/Oracle Linux: yum install pkg-config
27    SuSE:                       zypperinstall pkg-config
28
29Call Stack (most recent call first):
30  cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)
31  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
32
33
34CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
35  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
36Call Stack (most recent call first):
37  /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
38  /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
39  cmake/pkg-config.cmake:37 (FIND_PACKAGE)
40  cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)
41  CMakeLists.txt:2066 (MYSQL_CHECK_RPC)
42
43
44-- Configuring incomplete, errors occurred!
45See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
46See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".

安装pkg-config包:

代码语言:javascript
复制
1aptinstall-y pkg-config

继续执行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-- Generating done
24-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

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

总结编译过程:

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.4.1.4.6 Kylin Server V10
  • 2.4.1.4.7 UOS Server V20
  • 2.4.1.4.8 openSUSE 15
  • 2.4.1.4.9 Ubuntu Server 24.04 LTS
  • 2.4.1.4.10 Ubuntu Server 20.04/22.04 LTS和Debian 11/12
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档