进入mysql包解压的目录:
cd mysql-8.4.5/
安装cmake包:
yum install -y cmake
执行cmake:
cmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.-- Running cmake version 3.27.9-- Could NOT find Git (missing: GIT_EXECUTABLE)-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.4.5/cmake-- MySQL 8.4.5CMake 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。CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake 错误:EnableLanguage 后未设置 CMAKE_C_COMPILER,需要安装gcc。CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER,需要安装gcc-c++。-- Configuring incomplete, errors occurred!
安装make、gcc和gcc-c++包:
yum install -y make gcc gcc-c++
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/ssl.cmake:85 (MESSAGE): Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first): cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR) cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL) CMakeLists.txt:1859 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装openssl-devel包:
yum install -y openssl-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/readline.cmake:93 (MESSAGE): Curses library not found. Please install appropriate package, 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。Call Stack (most recent call first): cmake/readline.cmake:127 (FIND_CURSES) cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装ncurses-devel:
yum install -y ncurses-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:41 (MESSAGE): Cannot find RPC development libraries. You need to install the required packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-dev RedHat/Fedora/Oracle Linux: yum install libtirpc-devel SuSE: zypper install glibc-develCall Stack (most recent call first): cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC) CMakeLists.txt:2097 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:108 (MESSAGE): Could not find rpc/rpc.h in /usr/include or /usr/include/tirpcCall Stack (most recent call first): CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
yum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:30 (MESSAGE): Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包: Debian/Ubuntu: apt install rpcsvc-proto RedHat/Fedora/Oracle Linux: yum install rpcgen SuSE: zypper install glibc-develCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE) plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE): Could not find rpcgenCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
yum install -y rpcgen
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Configuring done (1.8s)-- Generating done (3.4s)-- Build files have been written to: /usr/local/src/mysql-8.4.5
执行make:
make -j $(nproc) && make install
总结编译过程:
# 安装依赖包yum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录cd mysql-8.4.5/# 执行cmakecmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1# 执行makemake -j $(nproc) && make install
进入mysql包解压的目录:
cd mysql-8.4.5/
安装cmake包:
yum install -y cmake
执行cmake:
cmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.-- Running cmake version 3.30.5-- Could NOT find Git (missing: GIT_EXECUTABLE) Hint: The project() command has not yet been called. It sets up system-specific search paths.-- This is .el10. as found from 'rpm -qf /'-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.4.5/cmake-- MySQL 8.4.5-- The C compiler identification is unknown-- The CXX compiler identification is unknownCMake Error at CMakeLists.txt:514 (PROJECT): No CMAKE_C_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。CMake Error at CMakeLists.txt:514 (PROJECT): No CMAKE_CXX_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装gcc-c++。-- Configuring incomplete, errors occurred!
安装gcc和gcc-c++包:
yum install -y gcc gcc-c++
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) -- Could not find system OpenSSLMake sure you have specified a supported SSL version. Valid options are : openssl[0-9]+ (use alternative system library)yes (synonym for system)</path/to/custom/openssl/installation>CMake Error at cmake/ssl.cmake:85 (MESSAGE): Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first): cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR) cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL) CMakeLists.txt:1859 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装openssl-devel包:
yum install -y openssl-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:93 (MESSAGE): Curses library not found. Please install appropriate package, 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。Call Stack (most recent call first): cmake/readline.cmake:127 (FIND_CURSES) cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装ncurses-devel:
yum install -y ncurses-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Package 'libtirpc', required by 'virtual:world', not foundCMake Warning at cmake/rpc.cmake:41 (MESSAGE): Cannot find RPC development libraries. You need to install the required packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-dev RedHat/Fedora/Oracle Linux: yum install libtirpc-devel SuSE: zypper install glibc-develCall Stack (most recent call first): cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC) CMakeLists.txt:2097 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:108 (MESSAGE): Could not find rpc/rpc.h in /usr/include or /usr/include/tirpcCall Stack (most recent call first): CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
yum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:30 (MESSAGE): Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包: Debian/Ubuntu: apt install rpcsvc-proto RedHat/Fedora/Oracle Linux: yum install rpcgen SuSE: zypper install glibc-develCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE) plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE): Could not find rpcgenCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
yum install -y rpcgen
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Configuring done (35.3s)-- Generating done (5.5s)-- Build files have been written to: /usr/local/src/mysql-8.4.5
执行make:
make -j $(nproc) && make install
总结编译过程:
# 安装依赖包yum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录cd mysql-8.4.5/# 执行cmakecmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1# 执行makemake -j $(nproc) && make install
进入mysql包解压的目录:
cd mysql-8.4.5/
安装cmake包:
yum install -y cmake
执行cmake:
cmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.-- Running cmake version 3.26.5-- Could NOT find Git (missing: GIT_EXECUTABLE) -- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.4.5/cmake-- MySQL 8.4.5CMake Error at CMakeLists.txt:514 (PROJECT): The CMAKE_C_COMPILER: /usr/bin/cc is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH。CMake Error at CMakeLists.txt:514 (PROJECT): The CMAKE_CXX_COMPILER: /usr/bin/c++ is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中)。-- Configuring incomplete, errors occurred!
安装gcc和gcc-c++包:
yum install -y gcc gcc-c++
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at CMakeLists.txt:566 (MESSAGE): This is an in-source build-- CMAKE_GENERATOR: Unix MakefilesCMake Error at cmake/os/Linux.cmake:73 (MESSAGE): GCC 10 or newer is required # 提示,需要 GCC 10 或更高版本Call Stack (most recent call first): CMakeLists.txt:667 (INCLUDE)-- Configuring incomplete, errors occurred!
编译安装gcc:
[root@anolis8 mysql-8.4.5]# gcc --versiongcc (GCC) 8.5.0 20210514 (Anolis 8.5.0-24.0.1) # 可以看到gcc版本是8.5.0Copyright (C) 2018 Free Software Foundation, Inc.This is free software; see the sourcefor copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[root@opencloudos8 mysql-8.4.5]# gcc --versiongcc (GCC) 8.5.0 20210514 (Tencent 8.5.0-26)Copyright (C) 2018 Free Software Foundation, Inc.This is free software; see the sourcefor copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.cd ..# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gztar xf gcc-11.5.0.tar.gzcd gcc-11.5.0# 安装gcc依赖包yum install -y bzip2# 下载gcc依赖包./contrib/download_prerequisites2025-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]2025-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]2025-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]2025-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]gmp-6.1.0.tar.bz2: OKmpfr-3.1.6.tar.bz2: OKmpc-1.0.3.tar.gz: OKisl-0.18.tar.bz2: OKAll prerequisites downloaded successfully.mkdir buildcd build/# 执行configure../configure --prefix=/usr --disable-multilib ...configure: creating ./config.statusconfig.status: creating Makefile# 执行makemake -j 4 && make install...make[4]: Nothing to be donefor'install-data-am'.make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'[root@anolis8 build]# gcc --versiongcc (GCC) 11.5.0Copyright (C) 2021 Free Software Foundation, Inc.This is free software; see the sourcefor copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
再次进入mysql包解压的目录:
cd ../../mysql-8.4.5/
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/ssl.cmake:85 (MESSAGE): Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first): cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR) cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL) CMakeLists.txt:1859 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装openssl-devel包:
yum install -y openssl-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/readline.cmake:93 (MESSAGE): Curses library not found. Please install appropriate package, 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。Call Stack (most recent call first): cmake/readline.cmake:127 (FIND_CURSES) cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装ncurses-devel:
yum install -y ncurses-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:41 (MESSAGE): Cannot find RPC development libraries. You need to install the required packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-dev RedHat/Fedora/Oracle Linux: yum install libtirpc-devel SuSE: zypper install glibc-develCall Stack (most recent call first): cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC) CMakeLists.txt:2097 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:108 (MESSAGE): Could not find rpc/rpc.h in /usr/include or /usr/include/tirpcCall Stack (most recent call first): CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
yum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:30 (MESSAGE): Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包: Debian/Ubuntu: apt install rpcsvc-proto RedHat/Fedora/Oracle Linux: yum install rpcgen SuSE: zypper install glibc-develCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE) plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE): Could not find rpcgenCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
[root@opencloudos8 mysql-8.4.5]# yum install -y rpcgenLast metadata expiration check: 0:01:02 ago on Wed 07 May 2025 12:24:52 AM CST.No match for argument: rpcgenError: Unable to find a match: rpcgen# 提示,找不到rpcgen包# OpenCloudOS 8要启用PowerTools镜像仓库dnf config-manager --set-enabled PowerToolsyum install -y rpcgen
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Configuring done (1.4s)-- Generating done (2.3s)-- Build files have been written to: /usr/local/src/mysql-8.4.5
执行make:
make -j $(nproc) && make install
总结编译过程:
# OpenCloudOS 8要启用PowerTools镜像仓库dnf config-manager --set-enabled PowerTools# 安装依赖包yum install -y cmake gcc gcc-c++ bzip2 openssl-devel ncurses-devel libtirpc-devel rpcgen# 编译gccwget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gztar xf gcc-11.5.0.tar.gzcd gcc-11.5.0./contrib/download_prerequisitesmkdir buildcd build/../configure --prefix=/usr --disable-multilib make -j 4 && make install# 进入mysql包解压的目录cd ../../mysql-8.4.5/# 执行cmakecmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1# 执行makemake -j $(nproc) && make install
进入mysql包解压的目录:
cd mysql-8.4.5/
安装cmake包:
yum install -y cmake
执行cmake:
cmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.-- Running cmake version 3.26.5-- Could NOT find Git (missing: GIT_EXECUTABLE) -- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.4.5/cmake-- MySQL 8.4.5-- The C compiler identification is unknown-- The CXX compiler identification is unknownCMake Error at CMakeLists.txt:514 (PROJECT): No CMAKE_C_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH。CMake Error at CMakeLists.txt:514 (PROJECT): No CMAKE_CXX_COMPILER could be found. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中)。-- Configuring incomplete, errors occurred!
安装gcc和gcc-c++包:
yum install -y gcc gcc-c++
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/systemd.cmake:60 (MESSAGE): Unable to detect systemd support on build machine, Aborting cmake build. # 提示,无法在构建计算机上检测到 systemd 支持,中止 cmake 构建。Call Stack (most recent call first): cmake/systemd.cmake:80 (MYSQL_CHECK_SYSTEMD) CMakeLists.txt:1555 (INCLUDE)-- Configuring incomplete, errors occurred!
安装systemd-devel包:
yum install -y systemd-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/ssl.cmake:85 (MESSAGE): Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first): cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR) cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL) CMakeLists.txt:1859 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装openssl-devel包:
yum install -y openssl-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/readline.cmake:93 (MESSAGE): Curses library not found. Please install appropriate package, 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。Call Stack (most recent call first): cmake/readline.cmake:127 (FIND_CURSES) cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装ncurses-devel:
yum install -y ncurses-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:41 (MESSAGE): Cannot find RPC development libraries. You need to install the required packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-dev RedHat/Fedora/Oracle Linux: yum install libtirpc-devel SuSE: zypper install glibc-develCall Stack (most recent call first): cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC) CMakeLists.txt:2097 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:108 (MESSAGE): Could not find rpc/rpc.h in /usr/include or /usr/include/tirpcCall Stack (most recent call first): CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
yum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:30 (MESSAGE): Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包: Debian/Ubuntu: apt install rpcsvc-proto RedHat/Fedora/Oracle Linux: yum install rpcgen SuSE: zypper install glibc-develCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE) plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE): Could not find rpcgenCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
yum install -y rpcgen
继续执行cmake:
rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...-- Configuring done (24.7s)-- Generating done (2.5s)-- Build files have been written to: /usr/local/src/mysql-8.4.5
执行make:
make -j $(nproc) && make install
总结编译过程:
# 安装依赖包yum install -y cmake gcc gcc-c++ systemd-devel openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录cd mysql-8.4.5/# 执行cmakecmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1# 执行makemake -j $(nproc) && make install
进入mysql包解压的目录:
cd mysql-8.4.5/
安装cmake包:
yum install -y cmake
执行cmake:
cmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.-- Running cmake version 3.16.5-- Could NOT find Git (missing: GIT_EXECUTABLE) -- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.4.5/cmake-- MySQL 8.4.5CMake 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。CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake 错误:EnableLanguage 后未设置 CMAKE_C_COMPILER,需要安装gcc。CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake 错误:在 EnableLanguage 之后未设置 CMAKE_CXX_COMPILER,需要安装gcc-c++。-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
安装make、gcc和gcc-c++包:
yum install -y make gcc gcc-c++
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at CMakeLists.txt:566 (MESSAGE): This is an in-source build-- CMAKE_GENERATOR: Unix MakefilesCMake Error at cmake/os/Linux.cmake:73 (MESSAGE): GCC 10 or newer is required # 提示,需要 GCC 10 或更高版本Call Stack (most recent call first): CMakeLists.txt:667 (INCLUDE)-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".
编译安装gcc:
[root@kylin10 mysql-8.4.5]# gcc --versiongcc (GCC) 7.3.0 # 可以看到gcc版本是7.3.0Copyright (C) 2017 Free Software Foundation, Inc.This is free software; see the sourcefor copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.cd ..# 注意:这里需要编译安装gcc 11,不要装gcc 10,装了gcc 10在登录mysql之后就退出了,报错“Segmentation fault”。wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gztar xf gcc-11.5.0.tar.gzcd gcc-11.5.0# 下载gcc依赖包./contrib/download_prerequisites2025-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]2025-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]2025-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]2025-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]gmp-6.1.0.tar.bz2: OKmpfr-3.1.6.tar.bz2: OKmpc-1.0.3.tar.gz: OKisl-0.18.tar.bz2: OKAll prerequisites downloaded successfully.mkdir buildcd build/# 执行configure../configure --prefix=/usr --disable-multilib ...configure: creating ./config.statusconfig.status: creating Makefile# 执行makemake -j 4 && make install...make[4]: Nothing to be donefor'install-data-am'.make[4]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[3]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[2]: Leaving directory '/usr/local/src/gcc-11.5.0/build/x86_64-pc-linux-gnu/libatomic'make[1]: Leaving directory '/usr/local/src/gcc-11.5.0/build'[root@kylin10 build]# gcc --versiongcc (GCC) 11.5.0Copyright (C) 2021 Free Software Foundation, Inc.This is free software; see the sourcefor copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
再次进入mysql包解压的目录:
cd ../../mysql-8.4.5/
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/ssl.cmake:85 (MESSAGE): Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first): cmake/ssl.cmake:370 (FATAL_SSL_NOT_FOUND_ERROR) cmake/ssl.cmake:551 (FIND_SYSTEM_OPENSSL) CMakeLists.txt:1859 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".
安装openssl-devel包:
yum install -y openssl-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Error at cmake/readline.cmake:93 (MESSAGE): Curses library not found. Please install appropriate package, 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。Call Stack (most recent call first): cmake/readline.cmake:127 (FIND_CURSES) cmake/readline.cmake:221 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1966 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".
安装ncurses-devel:
yum install -y ncurses-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:41 (MESSAGE): Cannot find RPC development libraries. You need to install the required packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-dev RedHat/Fedora/Oracle Linux: yum install libtirpc-devel SuSE: zypper install glibc-develCall Stack (most recent call first): cmake/rpc.cmake:107 (WARN_MISSING_SYSTEM_TIRPC) CMakeLists.txt:2097 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:108 (MESSAGE): Could not find rpc/rpc.h in /usr/include or /usr/include/tirpcCall Stack (most recent call first): CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".
安装libtirpc-devel包:
yum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...CMake Warning at cmake/rpc.cmake:30 (MESSAGE): Cannot find rpcgen executable. You need to install the required packages: # 提示,找不到 rpcgen 可执行文件。您需要安装所需的软件包: Debian/Ubuntu: apt install rpcsvc-proto RedHat/Fedora/Oracle Linux: yum install rpcgen SuSE: zypper install glibc-develCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:123 (WARN_MISSING_RPCGEN_EXECUTABLE) plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:124 (MESSAGE): Could not find rpcgenCall Stack (most recent call first): plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeOutput.log".See also "/usr/local/src/mysql-8.4.5/CMakeFiles/CMakeError.log".
安装rpcgen包:
yum install -y rpcgen
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件rm -f CMakeCache.txtcmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1...# 正常会有类似如下的输出-- Configuring done-- Generating done-- Build files have been written to: /usr/local/src/mysql-8.4.5
执行make:
make -j $(nproc) && make install
总结编译过程:
# 安装依赖包yum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 编译gccwget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gztar xf gcc-11.5.0.tar.gzcd gcc-11.5.0./contrib/download_prerequisitesmkdir buildcd build/../configure --prefix=/usr --disable-multilib make -j 4 && make install# 进入mysql包解压的目录cd ../../mysql-8.4.5/# 执行cmakecmake \-DCMAKE_INSTALL_PREFIX=/apps/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=/apps/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DMYSQL_DATADIR=/data/mysql/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1# 执行makemake -j $(nproc) && make install
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。