进入mysql包解压的目录:
1cd mysql-8.4.5/安装cmake包:
1yum install-y cmake执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
16-DWITH_SYSTEMD=1
17...
18CMake Error at CMakeLists.txt:514 (PROJECT):
19 The CMAKE_C_COMPILER:
20
21 /usr/bin/cc
22
23 is not a full path to an existing compiler tool.
24
25 Tell CMake where to find the compiler by setting either the environment
26 variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
27 the compiler, or to the compiler name if it is in the PATH.# 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH。
28
29
30CMake Error at CMakeLists.txt:514 (PROJECT):
31 The CMAKE_CXX_COMPILER:
32
33 /usr/bin/c++
34
35 is not a full path to an existing compiler tool.
36
37 Tell CMake where to find the compiler by setting either the environment
38 variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
39 to the compiler, or to the compiler name if it is in the PATH.# 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中)。
40
41
42-- Configuring incomplete, errors occurred!安装gcc和gcc-c++包:
1yum install-y gcc gcc-c++继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at CMakeLists.txt:566 (MESSAGE):
22 This is an in-source build
23
24
25-- CMAKE_GENERATOR: Unix Makefiles
26CMake Error at cmake/os/Linux.cmake:73 (MESSAGE):
27 GCC 10 or newer is required # 提示,需要 GCC 10 或更高版本
28Call Stack (most recent call first):
29 CMakeLists.txt:667 (INCLUDE)
30
31
32-- Configuring incomplete, errors occurred!编译安装gcc:
1[root@anolis8 mysql-8.4.5]# gcc --version
2gcc (GCC)8.5.0 20210514(Anolis 8.5.0-24.0.1)# 可以看到gcc版本是8.5.0
3Copyright (C)2018 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@opencloudos8 mysql-8.4.5]# gcc --version
8gcc (GCC)8.5.0 20210514(Tencent 8.5.0-26)
9Copyright (C)2018 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
13cd..
14
15# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
16wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
17tar xf gcc-11.5.0.tar.gz
18cd gcc-11.5.0
19
20# 安装gcc依赖包
21yum install-ybzip2
22
23# 下载gcc依赖包
24./contrib/download_prerequisites
252025-05-06 23:17:03 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840/2383840] ->"gmp-6.1.0.tar.bz2"[1]
262025-05-06 23:17:08 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.6.tar.bz2 [1287202/1287202] ->"mpfr-3.1.6.tar.bz2"[1]
272025-05-06 23:17:11 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] ->"mpc-1.0.3.tar.gz"[1]
282025-05-06 23:17:22 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] ->"isl-0.18.tar.bz2"[1]
29gmp-6.1.0.tar.bz2: OK
30mpfr-3.1.6.tar.bz2: OK
31mpc-1.0.3.tar.gz: OK
32isl-0.18.tar.bz2: OK
33All prerequisites downloaded successfully.
34
35mkdir build
36cd build/
37
38# 执行configure
39../configure --prefix=/usr --disable-multilib
40...
41configure: creating ./config.status
42config.status: creating Makefile
43
44# 执行make
45make-j4&&makeinstall
46...
47make[4]: Nothing to be donefor'install-data-am'.
48make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
49make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
50make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
51make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
52
53[root@anolis8 build]# gcc --version
54gcc (GCC)11.5.0
55Copyright (C)2021 Free Software Foundation, Inc.
56This is free software; see the sourcefor copying conditions. There is NO
57warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.再次进入mysql包解压的目录:
1cd../../mysql-8.4.5/继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/ssl.cmake:85 (MESSAGE):
22 Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
23
24Call Stack (most recent call first):
25 cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR)
26 cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL)
27 CMakeLists.txt:1859 (MYSQL_CHECK_SSL)
28
29
30-- Configuring incomplete, errors occurred!安装openssl-devel包:
1yum install-y openssl-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/readline.cmake:93 (MESSAGE):
22 Curses library not found. Please install appropriate package,
23
24 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。
25Call Stack (most recent call first):
26 cmake/readline.cmake:127 (FIND_CURSES)
27 cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
28 CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)
29
30
31-- Configuring incomplete, errors occurred!安装ncurses-devel:
1yum install-y ncurses-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
22 Cannot find RPC development libraries. You need to install the required
23 packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
24
25 Debian/Ubuntu: aptinstall libtirpc-dev
26 RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
27 SuSE: zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30 cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC)
31 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
32
33
34CMake Error at cmake/rpc.cmake:108 (MESSAGE):
35 Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
36Call Stack (most recent call first):
37 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
38
39
40-- Configuring incomplete, errors occurred!安装libtirpc-devel包:
1yum install-y libtirpc-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
22 Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
23
24 Debian/Ubuntu: aptinstall rpcsvc-proto
25 RedHat/Fedora/Oracle Linux: yum install rpcgen
26 SuSE: zypperinstall glibc-devel
27
28Call Stack (most recent call first):
29 plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE)
30 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
31
32
33CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE):
34 Could not find rpcgen
35Call Stack (most recent call first):
36 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
37
38
39-- Configuring incomplete, errors occurred!安装rpcgen包:
1[root@opencloudos8 mysql-8.4.5]# yum install -y rpcgen
2Last metadata expiration check: 0:01:02 ago on Wed 07 May 202512:24:52 AM 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:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21-- Configuring done(1.4s)
22-- Generating done(2.3s)
23-- Build files have been written to: /usr/local/src/mysql-8.4.5执行make:
1make-j$(nproc)&&makeinstall总结编译过程:
1# OpenCloudOS 8要启用PowerTools镜像仓库
2dnf config-manager --set-enabled PowerTools
3
4# 安装依赖包
5yum install-y cmake gcc gcc-c++ bzip2 openssl-devel ncurses-devel libtirpc-devel rpcgen
6
7# 编译gcc
8wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
9tar xf gcc-11.5.0.tar.gz
10cd gcc-11.5.0
11./contrib/download_prerequisites
12mkdir build
13cd build/
14../configure --prefix=/usr --disable-multilib
15make-j4&&makeinstall
16
17# 进入mysql包解压的目录
18cd../../mysql-8.4.5/
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-DFORCE_INSOURCE_BUILD=1\
36-DWITH_SYSTEMD=1
37
38# 执行make
39make-j$(nproc)&&makeinstall进入mysql包解压的目录:
1cd mysql-8.4.5/安装cmake包:
1yum install-y cmake执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
16-DWITH_SYSTEMD=1
17...
18CMake Error at CMakeLists.txt:514 (PROJECT):
19 No CMAKE_C_COMPILER could be found.
20
21 Tell CMake where to find the compiler by setting either the environment
22 variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
23 the compiler, or to the compiler name if it is in the PATH.# 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH。
24
25
26CMake Error at CMakeLists.txt:514 (PROJECT):
27 No CMAKE_CXX_COMPILER could be found.
28
29 Tell CMake where to find the compiler by setting either the environment
30 variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
31 to the compiler, or to the compiler name if it is in the PATH.# 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中)。
32
33
34-- Configuring incomplete, errors occurred!安装gcc和gcc-c++包:
1yum install-y gcc gcc-c++继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/systemd.cmake:60 (MESSAGE):
22 Unable to detect systemd support on build machine, Aborting cmake build. # 提示,无法在构建计算机上检测到 systemd 支持,中止 cmake 构建。
23Call Stack (most recent call first):
24 cmake/systemd.cmake:80 (MYSQL_CHECK_SYSTEMD)
25 CMakeLists.txt:1555 (INCLUDE)
26
27
28-- Configuring incomplete, errors occurred!安装systemd-devel包:
1yum install-y systemd-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/ssl.cmake:85 (MESSAGE):
22 Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
23
24Call Stack (most recent call first):
25 cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR)
26 cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL)
27 CMakeLists.txt:1859 (MYSQL_CHECK_SSL)
28
29
30-- Configuring incomplete, errors occurred!安装openssl-devel包:
1yum install-y openssl-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/readline.cmake:93 (MESSAGE):
22 Curses library not found. Please install appropriate package,
23
24 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。
25Call Stack (most recent call first):
26 cmake/readline.cmake:127 (FIND_CURSES)
27 cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
28 CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)
29
30
31-- Configuring incomplete, errors occurred!安装ncurses-devel:
1yum install-y ncurses-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
22 Cannot find RPC development libraries. You need to install the required
23 packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
24
25 Debian/Ubuntu: aptinstall libtirpc-dev
26 RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
27 SuSE: zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30 cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC)
31 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
32
33
34CMake Error at cmake/rpc.cmake:108 (MESSAGE):
35 Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
36Call Stack (most recent call first):
37 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
38
39
40-- Configuring incomplete, errors occurred!安装libtirpc-devel包:
1yum install-y libtirpc-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
22 Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
23
24 Debian/Ubuntu: aptinstall rpcsvc-proto
25 RedHat/Fedora/Oracle Linux: yum install rpcgen
26 SuSE: zypperinstall glibc-devel
27
28Call Stack (most recent call first):
29 plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE)
30 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
31
32
33CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE):
34 Could not find rpcgen
35Call Stack (most recent call first):
36 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
37
38
39-- Configuring incomplete, errors occurred!安装rpcgen包:
1yum install-y rpcgen继续执行cmake:
1rm-f CMakeCache.txt
2
3cmake .\
4-DCMAKE_INSTALL_PREFIX=/apps/mysql \
5-DMYSQL_DATADIR=/data/mysql/ \
6-DSYSCONFDIR=/etc/ \
7-DWITH_INNOBASE_STORAGE_ENGINE=1\
8-DWITH_ARCHIVE_STORAGE_ENGINE=1\
9-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
10-DWITH_DEBUG=0\
11-DWITH_SSL=system \
12-DWITH_LIBWRAP=0\
13-DENABLED_LOCAL_INFILE=1\
14-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
15-DDEFAULT_CHARSET=utf8mb4 \
16-DDEFAULT_COLLATION=utf8mb4_general_ci \
17-DFORCE_INSOURCE_BUILD=1\
18-DWITH_SYSTEMD=1
19...
20-- Configuring done(24.7s)
21-- Generating done(2.5s)
22-- Build files have been written to: /usr/local/src/mysql-8.4.5执行make:
1make-j$(nproc)&&makeinstall总结编译过程:
1# 安装依赖包
2yum install-y cmake gcc gcc-c++ systemd-devel openssl-devel ncurses-devel libtirpc-devel rpcgen
3
4# 进入mysql包解压的目录
5cd mysql-8.4.5/
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-DFORCE_INSOURCE_BUILD=1\
23-DWITH_SYSTEMD=1
24
25# 执行make
26make-j$(nproc)&&makeinstall进入mysql包解压的目录:
1cd mysql-8.4.5/安装cmake包:
1yum install-y cmake执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
16-DWITH_SYSTEMD=1
17...
18CMake 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。
19CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake 错误:EnableLanguage 后未设置 CMAKE_C_COMPILER,需要安装gcc。
20CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER,需要安装gcc-c++。
21-- Configuring incomplete, errors occurred!
22See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".安装make、gcc和gcc-c++包:
1yum install-ymake gcc gcc-c++继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at CMakeLists.txt:566 (MESSAGE):
22 This is an in-source build
23
24
25-- CMAKE_GENERATOR: Unix Makefiles
26CMake Error at cmake/os/Linux.cmake:73 (MESSAGE):
27 GCC 10 or newer is required # 提示,需要 GCC 10 或更高版本
28Call Stack (most recent call first):
29 CMakeLists.txt:667 (INCLUDE)
30
31
32-- Configuring incomplete, errors occurred!
33See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".编译安装gcc:
1[root@kylin10 mysql-8.4.5]# gcc --version
2gcc (GCC)7.3.0 # 可以看到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
7cd..
8
9# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
10wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
11tar xf gcc-11.5.0.tar.gz
12cd gcc-11.5.0
13
14# 下载gcc依赖包
15./contrib/download_prerequisites
162025-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]
172025-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]
182025-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]
192025-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]
20gmp-6.1.0.tar.bz2: OK
21mpfr-3.1.6.tar.bz2: OK
22mpc-1.0.3.tar.gz: OK
23isl-0.18.tar.bz2: OK
24All prerequisites downloaded successfully.
25
26mkdir build
27cd build/
28
29# 执行configure
30../configure --prefix=/usr --disable-multilib
31...
32configure: creating ./config.status
33config.status: creating Makefile
34
35# 执行make
36make-j4&&makeinstall
37...
38make[4]: Nothing to be donefor'install-data-am'.
39make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
40make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
41make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
42make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
43
44[root@kylin10 build]# gcc --version
45gcc (GCC)11.5.0
46Copyright (C)2021 Free Software Foundation, Inc.
47This is free software; see the sourcefor copying conditions. There is NO
48warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.再次进入mysql包解压的目录:
1cd../../mysql-8.4.5/继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/ssl.cmake:85 (MESSAGE):
22 Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。
23
24Call Stack (most recent call first):
25 cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR)
26 cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL)
27 CMakeLists.txt:1859 (MYSQL_CHECK_SSL)
28
29
30-- Configuring incomplete, errors occurred!
31See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
32See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装openssl-devel包:
1yum install-y openssl-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/readline.cmake:93 (MESSAGE):
22 Curses library not found. Please install appropriate package,
23
24 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。
25Call Stack (most recent call first):
26 cmake/readline.cmake:127 (FIND_CURSES)
27 cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
28 CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)
29
30
31-- Configuring incomplete, errors occurred!
32See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
33See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装ncurses-devel:
1yum install-y ncurses-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
22 Cannot find RPC development libraries. You need to install the required
23 packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
24
25 Debian/Ubuntu: aptinstall libtirpc-dev
26 RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
27 SuSE: zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30 cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC)
31 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
32
33
34CMake Error at cmake/rpc.cmake:108 (MESSAGE):
35 Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
36Call Stack (most recent call first):
37 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
38
39
40-- Configuring incomplete, errors occurred!
41See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
42See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装libtirpc-devel包:
1yum install-y libtirpc-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
22 Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
23
24 Debian/Ubuntu: aptinstall rpcsvc-proto
25 RedHat/Fedora/Oracle Linux: yum install rpcgen
26 SuSE: zypperinstall glibc-devel
27
28Call Stack (most recent call first):
29 plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE)
30 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
31
32
33CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE):
34 Could not find rpcgen
35Call Stack (most recent call first):
36 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
37
38
39-- Configuring incomplete, errors occurred!
40See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
41See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装rpcgen包:
1yum install-y rpcgen继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21# 正常会有类似如下的输出
22-- Configuring done
23-- Generating done
24-- Build files have been written to: /usr/local/src/mysql-8.4.5执行make:
1make-j$(nproc)&&makeinstall总结编译过程:
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-j4&&makeinstall
13
14# 进入mysql包解压的目录
15cd../../mysql-8.4.5/
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-DFORCE_INSOURCE_BUILD=1\
33-DWITH_SYSTEMD=1
34
35# 执行make
36make-j$(nproc)&&makeinstall进入mysql包解压的目录:
1cd mysql-8.4.5/安装cmake包:
1yum install-y cmake执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
16-DWITH_SYSTEMD=1
17...
18CMake Warning at CMakeLists.txt:566 (MESSAGE):
19 This is an in-source build
20
21
22-- CMAKE_GENERATOR: Unix Makefiles
23CMake Error at cmake/os/Linux.cmake:73 (MESSAGE):
24 GCC 10 or newer is required # 提示,需要 GCC 10 或更高版本
25Call Stack (most recent call first):
26 CMakeLists.txt:667 (INCLUDE)
27
28
29-- Configuring incomplete, errors occurred!
30See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".编译安装gcc:
1[root@uos20 mysql-8.4.5]# gcc --version
2gcc (GCC)7.3.0 # 可以看到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
7cd..
8
9# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。
10wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
11tar xf gcc-11.5.0.tar.gz
12cd gcc-11.5.0
13
14# 下载gcc依赖包
15./contrib/download_prerequisites
162025-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]
172025-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]
182025-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]
192025-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]
20gmp-6.1.0.tar.bz2: OK
21mpfr-3.1.6.tar.bz2: OK
22mpc-1.0.3.tar.gz: OK
23isl-0.18.tar.bz2: OK
24All prerequisites downloaded successfully.
25
26mkdir build
27cd build/
28
29# 执行configure
30../configure --prefix=/usr --disable-multilib
31...
32configure: creating ./config.status
33config.status: creating Makefile
34
35# 执行make
36make-j4&&makeinstall
37...
38make[4]: Nothing to be donefor'install-data-am'.
39make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
40make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
41make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'
42make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'
43
44[root@anolis8 build]# gcc --version
45gcc (GCC)11.5.0
46Copyright (C)2021 Free Software Foundation, Inc.
47This is free software; see the sourcefor copying conditions. There is NO
48warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.再次进入mysql包解压的目录:
1cd../../mysql-8.4.5/继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Error at cmake/readline.cmake:93 (MESSAGE):
22 Curses library not found. Please install appropriate package,
23
24 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。
25Call Stack (most recent call first):
26 cmake/readline.cmake:127 (FIND_CURSES)
27 cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE)
28 CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)
29
30
31-- Configuring incomplete, errors occurred!
32See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
33See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装ncurses-devel:
1yum install-y ncurses-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
22 Cannot find RPC development libraries. You need to install the required
23 packages: # 提示,找不到 RPC 开发库。您需要安装所需的包:
24
25 Debian/Ubuntu: aptinstall libtirpc-dev
26 RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
27 SuSE: zypperinstall glibc-devel
28
29Call Stack (most recent call first):
30 cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC)
31 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
32
33
34CMake Error at cmake/rpc.cmake:108 (MESSAGE):
35 Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
36Call Stack (most recent call first):
37 CMakeLists.txt:2097 (MYSQL_CHECK_RPC)
38
39
40-- Configuring incomplete, errors occurred!
41See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
42See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装libtirpc-devel包:
1yum install-y libtirpc-devel继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21CMake Warning at cmake/rpc.cmake:30 (MESSAGE):
22 Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包:
23
24 Debian/Ubuntu: aptinstall rpcsvc-proto
25 RedHat/Fedora/Oracle Linux: yum install rpcgen
26 SuSE: zypperinstall glibc-devel
27
28Call Stack (most recent call first):
29 plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE)
30 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
31
32
33CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE):
34 Could not find rpcgen
35Call Stack (most recent call first):
36 plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)
37
38
39-- Configuring incomplete, errors occurred!
40See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
41See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".安装rpcgen包:
1yum install-y rpcgen继续执行cmake:
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-DFORCE_INSOURCE_BUILD=1\
19-DWITH_SYSTEMD=1
20...
21-- Configuring done
22-- Generating done
23-- Build files have been written to: /usr/local/src/mysql-8.4.5执行make:
1make-j$(nproc)&&makeinstall总结编译过程:
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-j4&&makeinstall
13
14# 进入mysql包解压的目录
15cd../../mysql-8.4.5/
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-DFORCE_INSOURCE_BUILD=1\
33-DWITH_SYSTEMD=1
34
35# 执行make
36make-j$(nproc)&&makeinstall原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。