MySQL 8.0源码编译安装
文章目录
- 2.4 源码编译安装
- 2.4.1 MySQL 8.0
- 2.4.1.1 做准备用户和数据目录
- 2.4.1.2 准备数据库目录
- 2.4.1.3 下载并解压缩源码包
- 2.4.1.4 源码编译安装
- 2.4.1.4.1 Rocky 10、Almalinux 10、AnolisOS 8/23和OpenCloudOS 8
- 2.4.1.4.2 Rocky 8/9、Almalinux 8/9和CentOS Stream 8
- 2.4.1.4.3 CentOS Stream 10
- 2.4.1.4.4 CentOS Stream 9
- 2.4.1.4.5 CentOS 7
- 2.4.1.4.6 openEuler 22.03和24.03
- 2.4.1.4.7 OpenCloudOS 9
- 2.4.1.4.8 Kylin Server V10
- 2.4.1.4.9 UOS Server V20
- 2.4.1.4.10 openSUSE 15
- 2.4.1.4.11 Ubuntu 24.04
- 2.4.1.4.12 Ubuntu 20.04/22.04和Debian 11/12
- 2.4.1.4.13 Ubuntu 18.04
- 2.4.1.5 准备环境变量
- 2.4.1.6 生成数据库文件
- 2.4.1.7 准备配置文件
- 2.4.1.8 准备启动脚本并启动服务
- 2.4.1.9 修改口令
- 2.4.1.10 登录测试
- 2.4.1.11 一键安装MySQL 8.0源码编译的脚本
2.4 源码编译安装
建议:内存6G以上,否则编译时可能会出错,这里设置的4C8G。
2.4.1 MySQL 8.0
2.4.1.1 做准备用户和数据目录
# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、 Kylin Server、Uos Server、Ubuntu、Debian
useradd -r -s /sbin/nologin -d /data/mysql mysql# openSUSE
groupadd -r mysql
useradd -s /sbin/nologin -d /data/mysql -r -g mysql mysql
2.4.1.2 准备数据库目录
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
2.4.1.3 下载并解压缩源码包
MySQL源码包下载,去“https://www.mysql.com/”网站下载,选择“DOWNLOADS”,如图33所示。

图33 下载MySQL源码包
选择“MySQL Community (GPL) Downloads”,如图34所示。

图34 下载MySQL源码包
然后选择“MySQL Community Server”,如图35所示。

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

图36 下载MySQL源码包
cd /usr/local/src/# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、Kylin Server、Uos Server默认没有wget包,需要安装
yum install -y wget# openEuler 22.03/24.03、AnolisOS 23、OpenCloudOS 9没有安装tar包,需要安装
yum install -y tarwget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.42.tar.gztar xf mysql-boost-8.0.42.tar.gz
2.4.1.4 源码编译安装
编译安装说明 :
利用cmake编译,而利用传统方法,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
编译选项:https://dev.mysql.com/doc/refman/8.4/en/source-configuration-options.html。
MySQL cmake 一些常用的参数解释
-DCMAKE_INSTALL_PREFIX # MySQL 的安装目录
-DMYSQL_USER # MySQL 启动的用户名称,默认为 mysql
-DMYSQL_UNIX_ADDR # Unix socket 文件路径
-DSYSCONFDIR # 配置文件目录
-DSYSTEMD_PID_DIR # PID 文件存储路径
-DDEFAULT_CHARSET # 默认字符集
-DDEFAULT_COLLATION # 校验字符
-DWITH_INNOBASE_STORAGE_ENGINE # 是否安装 innodb 存储引擎 - 参数:1 or 0
-DWITH_ARCHIVE_STORAGE_ENGINE # 是否安装 archive 存储引擎 - 参数:1 or 0
-DWITH_BLACKHOLE_STORAGE_ENGINE # 是否安装 blackhole 存储引擎 - 参数:1 or 0
-DWITH_PERFSCHEMA_STORAGE_ENGINE # 是否安装 perfschema 存储引擎 - 参数:1 or 0
-DMYSQL_DATADIR # MySQL 数据存储路径
-DWITH_BOOST # 指定 boost 目录,需要下载的源码包包含 boost
-DFORCE_INSOURCE_BUILD # 强制编译,centos 9 版本不建议编译,所以需要加参数强行编译 - 参数:1 or 0
-DWITH_SYSTEMD # 是否 systemctl 管理 - 参数:1 or 0
-DMYSQL_TCP_PORT # MySQL 默认端口
-DWITH_SSL # 是否支持 ssl ,参数:yes or no
-DENABLED_LOCAL_INFILE # 是否开启 load data infile 命令 - 参数:1 or 0
2.4.1.4.1 Rocky 10、Almalinux 10、AnolisOS 8/23和OpenCloudOS 8
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome 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.0.42/cmake
-- MySQL 8.0.42
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_C_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path tothe compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto 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!
安装依赖包:
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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Package 'libtirpc', required by 'virtual:world', not found
CMake Warning at cmake/rpc.cmake:41 (MESSAGE):Cannot find RPC development libraries. You need to install the requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
[root@rocky10 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:11:41 ago on Tue 10 Jun 2025 02:21:30 PM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 没有找到libtirpc-devel包# Rocky 10要启用devel镜像仓库
dnf config-manager --set-enabled devel[root@almalinux10 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:07:57 ago on Tue 10 Jun 2025 03:02:32 PM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 没有找到libtirpc-devel包# Almalinux 10要启用crb镜像仓库
dnf config-manager --set-enabled crbyum 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
[root@opencloudos8 mysql-8.0.42]# yum install -y rpcgen
Last metadata expiration check: 0:05:52 ago on Wed 28 May 2025 10:18:01 PM CST.
No match for argument: rpcgen
Error: 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
# 正常会有类似如下的输出
-- Configuring done (45.2s)
-- Generating done (4.3s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# Rocky 10要启用devel镜像仓库
dnf config-manager --set-enabled devel# Almalinux 10要启用crb镜像仓库
dnf config-manager --set-enabled crb# OpenCloudOS 8要启用PowerTools镜像仓库
dnf config-manager --set-enabled PowerTools# 安装依赖包
yum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.2 Rocky 8/9、Almalinux 8/9和CentOS Stream 8
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.26.5
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- This is .el9. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
CMake Warning at CMakeLists.txt:404 (MESSAGE):Could not find devtoolset compiler/linker in /opt/rh/gcc-toolset-12CMake Warning at CMakeLists.txt:406 (MESSAGE):You need to install the required packages: # 提示,您需要安装所需的软件包:yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gccCMake Error at CMakeLists.txt:408 (MESSAGE):Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly. # 提示,需要安装gcc和gcc-c++-- Configuring incomplete, errors occurred!
安装依赖包:
yum install -y gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++
继续执行cmake:
# 再次执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
[root@rocky9 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:41:55 ago on Tue 27 May 2025 06:13:47 PM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 没有找到libtirpc-devel包# Rocky 9要启用devel镜像仓库
dnf config-manager --set-enabled devel[root@almalinux9 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:14:24 ago on Tue 27 May 2025 08:05:29 PM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 没有找到libtirpc-devel包# Almalinux 9要启用crb镜像仓库
dnf config-manager --set-enabled crbyum 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
[root@rocky8 mysql-8.0.42]# yum install -y rpcgen
Last metadata expiration check: 0:13:53 ago on Tue 27 May 2025 09:26:15 PM CST.
No match for argument: rpcgen
Error: Unable to find a match: rpcgen
# 提示,没有找到rpcgen包[root@almalinux8 mysql-8.0.42]# yum install -y rpcgen
Last metadata expiration check: 0:13:53 ago on Tue 27 May 2025 09:26:15 PM CST.
No match for argument: rpcgen
Error: Unable to find a match: rpcgen
# 提示,没有找到rpcgen包[root@centos8 mysql-8.0.42]# yum install -y rpcgen
Last metadata expiration check: 0:10:44 ago on Wed 28 May 2025 09:56:36 AM CST.
No match for argument: rpcgen
Error: Unable to find a match: rpcgen
# 提示,找不到rpcgen包# Rocky 8、Almalinux 8和CentOS Stream 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
# 正常会有类似如下的输出
-- Configuring done (44.2s)
-- Generating done (3.3s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# Rocky 9要启用devel镜像仓库
dnf config-manager --set-enabled devel# Almalinux 9要启用crb镜像仓库
dnf config-manager --set-enabled crb# Rocky 8、Almalinux 8和CentOS Stream 8要启用powertools镜像仓库
dnf config-manager --set-enabled powertools# 安装依赖包
yum install -y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.3 CentOS Stream 10
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: 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/tirpc
Call Stack (most recent call first):CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
[root@centos10 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:06:40 ago on Tue 27 May 2025 09:57:48 PM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 没有找到libtirpc-devel包# CentOS Stream 10要启用crb镜像仓库
dnf config-manager --set-enabled crbyum 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: 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 rpcgen
Call 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (66.2s)
-- Generating done (4.3s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# CentOS Stream 10要启用crb镜像仓库
dnf config-manager --set-enabled crb# 安装依赖包
yum install -y cmake openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.4 CentOS Stream 9
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.26.5
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- This is .el9. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
CMake Warning at CMakeLists.txt:404 (MESSAGE):Could not find devtoolset compiler/linker in /opt/rh/gcc-toolset-12CMake Warning at CMakeLists.txt:406 (MESSAGE):You need to install the required packages: # 提示,您需要安装所需的软件包:yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gccCMake Error at CMakeLists.txt:408 (MESSAGE):Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly. # 提示,需要安装gcc和gcc-c++-- Configuring incomplete, errors occurred!
安装依赖包:
yum install -y gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++
继续执行cmake:
# 再次执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Error at configure.cmake:337 (MESSAGE):No mysys timer support detected! # 未检测到 mysys 计时器支持!
Call Stack (most recent call first):CMakeLists.txt:1611 (INCLUDE)-- Configuring incomplete, errors occurred!
在编译参数添加下面内容:
-DCMAKE_CXX_FLAGS=”-I/usr/include/tirpc/rpc”
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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 \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: 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/tirpc
Call Stack (most recent call first):CMakeLists.txt:2097 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
[root@centos9 mysql-8.0.42]# yum install -y libtirpc-devel
Last metadata expiration check: 0:13:41 ago on Wed 28 May 2025 12:54:59 AM CST.
No match for argument: libtirpc-devel
Error: Unable to find a match: libtirpc-devel
# 提示,找不到libtirpc-devel包# CentOS Stream 9要启用crb镜像仓库
dnf config-manager --set-enabled crbyum install -y libtirpc-devel
继续执行cmake:
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: 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 rpcgen
Call 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 \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (32.8s)
-- Generating done (2.0s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# CentOS Stream 9要启用crb镜像仓库
dnf config-manager --set-enabled crb# 安装依赖包
yum install -y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.5 CentOS 7
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Running cmake version 2.8.12.2
CMake Warning at CMakeLists.txt:75 (MESSAGE):Please use cmake3 rather than cmake on this platform-- Please install cmake3 (yum install cmake3)
CMake Error at CMakeLists.txt:110 (CMAKE_MINIMUM_REQUIRED):CMake 3.11.2 or higher is required. You are running version 2.8.12.2 # 提示,需要 CMake 3.11.2 或更高版本。您运行的是版本 2.8.12.2。-- Configuring incomplete, errors occurred!
安装cmake:
去“https://cmake.org/download/”网址下载cmake二进制包,如图37所示。

图37 下载cmake二进制包
# 卸载cmake
yum remove -y cmakecd ..# github下载地址:
wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-linux-x86_64.tar.gz# 国内下载地址:
wget https://cmake.org/files/v3.31/cmake-3.31.7-linux-x86_64.tar.gz
tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/[root@centos7 src]# cmake --version
cmake version 3.31.7CMake suite maintained and supported by Kitware (kitware.com/cmake).
再次进入mysql包解压的目录:
cd mysql-8.0.42/
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.31.7
-- 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 .el7. as found from 'rpm -qf /'
-- Looking for a devtoolset compiler
CMake Warning at CMakeLists.txt:404 (MESSAGE):Could not find devtoolset compiler/linker in /opt/rh/devtoolset-11CMake Warning at CMakeLists.txt:406 (MESSAGE):You need to install the required packages: # 您需要安装所需的软件包:yum install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutilsCMake Error at CMakeLists.txt:408 (MESSAGE):Or you can set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly. # 提示,需要安装gcc和gcc-c++-- Configuring incomplete, errors occurred!
安装依赖包:
[root@centos7 mysql-8.0.42]# yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
No package devtoolset-11-gcc available.
No package devtoolset-11-gcc-c++ available.
No package devtoolset-11-binutil available.
Error: Nothing to do
# 找不到依赖包# 安装sclo镜像源包
yum install -y centos-release-scl# 替换镜像仓库地址
MIRROR=mirrors.tencent.com
OS_RELEASE_FULL_VERSION=`cat /etc/centos-release | sed -rn 's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`
sed -i.bak -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^# baseurl=|baseurl=|g' -e 's|^#baseurl=|baseurl=|g' -e 's|http://mirror.centos.org/centos|https://'${MIRROR}'/centos-vault|g' -e "s/7/${OS_RELEASE_FULL_VERSION}/g" /etc/yum.repos.d/CentOS-SCLo-*.repoyum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (23.9s)
-- Generating done (4.8s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装sclo镜像源包
yum install -y centos-release-scl# 替换镜像仓库地址
MIRROR=mirrors.tencent.com
OS_RELEASE_FULL_VERSION=`cat /etc/centos-release | sed -rn 's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`
sed -i.bak -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^# baseurl=|baseurl=|g' -e 's|^#baseurl=|baseurl=|g' -e 's|http://mirror.centos.org/centos|https://'${MIRROR}'/centos-vault|g' -e "s/7/${OS_RELEASE_FULL_VERSION}/g" /etc/yum.repos.d/CentOS-SCLo-*.repo# 安装依赖包
yum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++ openssl-devel ncurses-devel# 安装cmake
wget https://cmake.org/files/v3.31/cmake-3.31.7-linux-x86_64.tar.gz
tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/# 进入mysql包解压的目录:
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.6 openEuler 22.03和24.03
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome 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.0.42/cmake
-- MySQL 8.0.42
CMake 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (31.4s)
-- Generating done (1.8s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
yum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.7 OpenCloudOS 9
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome 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.0.42/cmake
-- MySQL 8.0.42
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_C_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path tothe compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1597 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (45.9s)
-- Generating done (4.1s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
yum install -y cmake gcc gcc-c++ systemd-devel openssl-devel ncurses-devel libtirpc-devel rpcgen# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.8 Kylin Server V10
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome 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.0.42/cmake
-- MySQL 8.0.42
CMake 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.0.42/CMakeFiles/CMakeOutput.log".
安装make、gcc和gcc-c++包:
yum install -y make gcc gcc-c++[root@kylin10 mysql-8.0.42]# gcc --version
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[root@kylin10 mysql-8.0.42]# g++ --version
g++ (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gcc
编译安装gcc:
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.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0# 下载gcc依赖包
./contrib/download_prerequisites
2025-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: OK
mpfr-3.1.6.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.mkdir build
cd build/# 执行configure
../configure --prefix=/usr --disable-multilib
...
configure: creating ./config.status
config.status: creating Makefile# 执行make
make -j 4 && make install
...
make[4]: Nothing to be done for '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 --version
gcc (GCC) 11.5.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
# 正常会有类似如下的输出
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
...
[ 21%] Linking CXX static library libmysqlgcs.a
make[2]: Leaving directory '/usr/local/src/mysql-8.0.42'
[ 21%] Built target mysqlgcs
make[1]: Leaving directory '/usr/local/src/mysql-8.0.42'
在编译参数添加下面内容:
-DCMAKE_BUILD_TYPE=RelWithDebInfo
需要重新执行cmake:
# 再次执行make之前先清理之前的操作
make clean# 再次执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
...
CMake Error at sql/CMakeLists.txt:1313 (MESSAGE):Cannot find /usr/local/src/mysql-8.0.42/sql/sql_yacc.h-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".
需要安装bison包
yum -y install bison
需要重新执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
...
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-8.0.42
重新执行make:
make -j 4 && make install
...
[ 21%] Built target icui18n
make[1]: Leaving directory '/usr/local/src/mysql-8.0.42'
make: *** [Makefile:163: all] Error 2
总结编译过程:
# 安装依赖包
yum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen# 编译gcc
wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0
./contrib/download_prerequisites
mkdir build
cd build/
../configure --prefix=/usr --disable-multilib
make -j 4 && make install# 进入mysql包解压的目录
cd ../../mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.9 UOS Server V20
编译安装gcc:
[root@uos20 src]# gcc --version
gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.[root@uos20 src]# g++ --version
g++ (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gccc# 注意:这里需要编译安装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.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0# 下载gcc依赖包
./contrib/download_prerequisites
2025-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: OK
mpfr-3.1.6.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.mkdir build
cd build/# 执行configure
../configure --prefix=/usr --disable-multilib
...
configure: creating ./config.status
config.status: creating Makefile# 执行make
make -j 4 && make install
...
make[4]: Nothing to be done for '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 --version
gcc (GCC) 11.5.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
进入mysql包解压的目录:
cd mysql-8.0.42/
安装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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-develCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
yum install -y cmake ncurses-devel libtirpc-devel rpcgen# 编译gcc
wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0
./contrib/download_prerequisites
mkdir build
cd build/
../configure --prefix=/usr --disable-multilib
make -j 4 && make install# 进入mysql包解压的目录
cd ../../mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.10 openSUSE 15
进入mysql包解压的目录:
cd mysql-8.0.42/
安装cmake包:
zypper 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.28.3
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
-- MySQL 8.0.42
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_C_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path tothe compiler, or to the compiler name if it is in the PATH. # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto 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++包:
zypper install -y gcc gcc-c++opensuse15:/usr/local/src/mysql-8.0.42 # gcc --version
gcc (SUSE Linux) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.opensuse15:/usr/local/src/mysql-8.0.42 # g++ --version
g++ (SUSE Linux) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# MySQL 8.0需要gcc 8或更高版本,gcc和gcc-c++版本过低,需要编译安装gcc
编译安装gcc:
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.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0# 下载gcc依赖包
./contrib/download_prerequisites
2025-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]
2025-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]
2025-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]
2025-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]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.6.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.mkdir build
cd build/# 执行configure
../configure --prefix=/usr --disable-multilib
...
configure: creating ./config.status
config.status: creating Makefile# 执行make
make -j 4 && make install
...
make[4]: Nothing to be done for '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'opensuse15:/usr/local/src/gcc-11.5.0/build # gcc --version
gcc (GCC) 11.5.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
再次进入mysql包解压的目录:
cd ../../mysql-8.0.42/
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装libopenssl-devel包:
zypper install -y libopenssl-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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装ncurses-devel:
zypper 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包:Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-devel # 注意,它提示安装的这个包是不行的,要安装libtirpc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-devel包:
zypper 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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-protoRedHat/Fedora/Oracle Linux: yum install rpcgenSuSE: zypper install glibc-devel # 注意,它提示安装的这个包是不行的,要安装rpcgenCall Stack (most recent call first):plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:113 (WARN_MISSING_RPCGEN_EXECUTABLE)plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)CMake Error at plugin/group_replication/libmysqlgcs/cmake/rpcgen.cmake:114 (MESSAGE):Could not find rpcgen
Call Stack (most recent call first):plugin/group_replication/libmysqlgcs/CMakeLists.txt:51 (INCLUDE)-- Configuring incomplete, errors occurred!
安装rpcgen包:
zypper 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (32.6s)
-- Generating done (2.1s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
zypper install -y cmake gcc gcc-c++ libopenssl-devel ncurses-devel libtirpc-devel rpcgen# 编译gcc
wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/gcc-11.5.0.tar.gz
tar xf gcc-11.5.0.tar.gz
cd gcc-11.5.0
./contrib/download_prerequisites
mkdir build
cd build/
../configure --prefix=/usr --disable-multilib
make -j 4 && make install# 进入mysql包解压的目录
cd ../../mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.11 Ubuntu 24.04
进入mysql包解压的目录:
cd mysql-8.0.42/
安装cmake包:
apt update
apt 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.28.3
-- Found Git: /usr/bin/git (found version "2.43.0")
-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
-- MySQL 8.0.42
-- The C compiler identification is GNU 13.3.0
-- The CXX compiler identification is unknown
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。-- Configuring incomplete, errors occurred!
安装g++包:
apt install -y g++
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装libssl-dev包:
apt install -y libssl-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装libncurses5-dev包:
apt install -y libncurses5-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning at cmake/pkg-config.cmake:30 (MESSAGE):Cannot find pkg-config. You need to install the required package: # 找不到 pkg-config。您需要安装所需的软件包:Debian/Ubuntu: apt install pkg-configRedHat/Fedora/Oracle Linux: yum install pkg-configSuSE: zypper install pkg-configCall Stack (most recent call first):cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at /usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):/usr/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake-3.28/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)cmake/pkg-config.cmake:37 (FIND_PACKAGE)cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装pkg-config包:
apt install -y pkg-config
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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 requiredpackages: # 提示,找不到 RPC 开发库。您需要安装所需的包: Debian/Ubuntu: apt install libtirpc-devRedHat/Fedora/Oracle Linux: yum install libtirpc-develSuSE: zypper install glibc-develCall Stack (most recent call first):cmake/rpc.cmake:112 (WARN_MISSING_SYSTEM_TIRPC)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at cmake/rpc.cmake:113 (MESSAGE):Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装libtirpc-dev包:
apt install -y libtirpc-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (47.0s)
-- Generating done (3.4s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
apt update
apt install -y cmake g++ libssl-dev libncurses5-dev pkg-config libtirpc-dev# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.12 Ubuntu 20.04/22.04和Debian 11/12
进入mysql包解压的目录:
cd mysql-8.0.42/
安装cmake包:
apt update
apt 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.22.1
-- Found Git: /usr/bin/git (found version "2.34.1")
-- CMAKE_MODULE_PATH is /usr/local/src/mysql-8.0.42/cmake
-- MySQL 8.0.42
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is unknown
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at CMakeLists.txt:585 (PROJECT):No CMAKE_CXX_COMPILER could be found.Tell CMake where to find the compiler by setting either the environmentvariable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full pathto the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".
安装g++包:
apt install -y g++
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".
安装libssl-dev包:
apt install -y libssl-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".
安装libncurses5-dev包:
apt install -y libncurses5-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning at cmake/pkg-config.cmake:30 (MESSAGE):Cannot find pkg-config. You need to install the required package: # 找不到 pkg-config。您需要安装所需的软件包:Debian/Ubuntu: apt install pkg-configRedHat/Fedora/Oracle Linux: yum install pkg-configSuSE: zypper install pkg-configCall Stack (most recent call first):cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)cmake/pkg-config.cmake:37 (FIND_PACKAGE)cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mysql-8.0.42/CMakeFiles/CMakeError.log".
安装pkg-config包:
apt install -y pkg-config
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
apt update
apt install -y cmake g++ libssl-dev libncurses5-dev pkg-config# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.4.13 Ubuntu 18.04
进入mysql包解压的目录:
cd mysql-8.0.42/
安装cmake包:
apt update
apt 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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Error at CMakeLists.txt:110 (CMAKE_MINIMUM_REQUIRED):CMake 3.11.2 or higher is required. You are running version 3.10.2 # 需要 CMake 3.11.2 或更高版本。您运行的是版本 3.10.2。-- Configuring incomplete, errors occurred!
安装cmake:
去“https://cmake.org/download/”网址下载cmake二进制包,如图38所示。

图38 下载cmake二进制包
# 卸载cmake
apt remove -y cmakecd ..# github下载地址:
wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-linux-x86_64.tar.gz# 国内下载地址:
wget https://cmake.org/files/v3.31/cmake-3.31.7-linux-x86_64.tar.gz
tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/root@ubuntu1804:/usr/local/src# cmake --version
cmake version 3.31.7CMake suite maintained and supported by Kitware (kitware.com/cmake).
再次进入mysql包解压的目录:
cd mysql-8.0.42/
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning:No source or binary directory provided. Both will be assumed to be thesame as the current working directory, but note that this warning willbecome a fatal error in future CMake releases.-- Running cmake version 3.31.7
-- Found Git: /usr/bin/git (found version "2.17.1")
-- Looking for gcc-8 on Ubuntu 18.04
CMake Warning at CMakeLists.txt:440 (MESSAGE):Could not find gcc-8CMake Error at CMakeLists.txt:441 (MESSAGE):Please do 'apt install gcc-8 g++-8' # 提示,安装gcc-8和g++-8。or set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER explicitly.-- Configuring incomplete, errors occurred!
安装g++包:
apt install -y gcc-8 g++-8
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
Not a supported openssl version in WITH_SSL=system.
Make 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:84 (MESSAGE):Please install the appropriate openssl developer package. # 提示,请安装相应的 openssl 开发人员软件包。Call Stack (most recent call first):cmake/ssl.cmake:380 (FATAL_SSL_NOT_FOUND_ERROR)CMakeLists.txt:1826 (MYSQL_CHECK_SSL)-- Configuring incomplete, errors occurred!
安装libssl-dev包:
apt install -y libssl-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-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:1930 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
安装libncurses5-dev包:
apt install -y libncurses5-dev
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
CMake Warning at cmake/pkg-config.cmake:30 (MESSAGE):Cannot find pkg-config. You need to install the required package: # 提示,找不到 pkg-config。您需要安装所需的软件包:Debian/Ubuntu: apt install pkg-configRedHat/Fedora/Oracle Linux: yum install pkg-configSuSE: zypper install pkg-configCall Stack (most recent call first):cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)CMake Error at /usr/local/cmake-3.31.7-linux-x86_64/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:233 (message):Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):/usr/local/cmake-3.31.7-linux-x86_64/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)/usr/local/cmake-3.31.7-linux-x86_64/share/cmake-3.31/Modules/FindPkgConfig.cmake:114 (find_package_handle_standard_args)cmake/pkg-config.cmake:37 (FIND_PACKAGE)cmake/rpc.cmake:62 (MYSQL_CHECK_PKGCONFIG)CMakeLists.txt:2066 (MYSQL_CHECK_RPC)-- Configuring incomplete, errors occurred!
安装pkg-config包:
apt install -y pkg-config
继续执行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=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
-- Configuring done (22.4s)
-- Generating done (3.6s)
-- Build files have been written to: /usr/local/src/mysql-8.0.42
执行make:
make -j 4 && make install
总结编译过程:
# 安装依赖包
apt update
apt install -y gcc-8 g++-8 libssl-dev libncurses5-dev pkg-config# 安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7-linux-x86_64.tar.gz
tar xf cmake-3.31.7-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/cmake-3.31.7-linux-x86_64/bin/cmake /usr/bin/# 进入mysql包解压的目录
cd mysql-8.0.42/# 执行cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_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/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1# 执行make
make -j 4 && make install
2.4.1.5 准备环境变量
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.shchown -R mysql:mysql /apps/mysql/
2.4.1.6 生成数据库文件
# /data/mysql 会自动生成,但是/data/必须事先存在
# --initialize会生成一个初始化密码,--initialize-insecure生成空密码,两种方式任选一种# 生成初始化密码
mysqld --initialize --user=mysql --datadir=/data/mysql
2025-04-30T14:21:27.126347Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-04-30T14:21:27.130746Z 0 [System] [MY-013169] [Server] /apps/mysql/bin/mysqld (mysqld 8.4.5) initializing of server in progress as process 45248
2025-04-30T14:21:27.133400Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2025-04-30T14:21:27.133406Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8mb3_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.
2025-04-30T14:21:27.151145Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-04-30T14:21:27.413116Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-04-30T14:21:28.313966Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: q&VUtowtA6!. # “q&VUtowtA6!.”这个就是初始化密码
2025-04-30T14:21:29.694317Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.# 生成空密码的root用户
mysqld --initialize-insecure --user=mysql --basedir=/apps/mysql --datadir=/data/mysql
2025-04-30T16:03:40.486647Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2025-04-30T16:03:40.494615Z 0 [System] [MY-013169] [Server] /apps/mysql/bin/mysqld (mysqld 8.4.5) initializing of server in progress as process 46287
2025-04-30T16:03:40.501884Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2025-04-30T16:03:40.501891Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8mb3_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.
2025-04-30T16:03:40.526636Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-04-30T16:03:40.853137Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2025-04-30T16:03:41.857055Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2025-04-30T16:03:43.215209Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.
2.4.1.7 准备配置文件
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/apps/mysql/
datadir=/data/mysql
port=3306
socket=/data/mysql/mysql.sock
pid-file=/data/mysql/mysql.pid [mysqld_safe]
log-error=/data/mysql/mysql.log [client]
port=3306
socket=/data/mysql/mysql.sock
EOF
2.4.1.8 准备启动脚本并启动服务
# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、 Kylin Server、Uos Server、openSUSE
cp /apps/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/# Ubuntu 24.04
cp /apps/mysql/usr/lib/systemd/system/mysqld.service /lib/systemd/system/# Ubuntu 22.04/20.04/18.04和Debian 11/12没有mysqld.service,需要单独写配置文件
cat > /lib/systemd/system/mysqld.service <<EOF
# Copyright (c) 2015, 2025, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is designed to work with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation. The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have either included with
# the program or referenced in the documentation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# systemd service file for MySQL forking server
#[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
Wants=network-online.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysqlType=notify# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0# Execute pre and post scripts as root
# hence, + prefix is used# Needed to create system tables
ExecStartPre=+/apps/mysql/bin/mysqld_pre_systemd# Start main service
ExecStart=/apps/mysql/bin/mysqld $MYSQLD_OPTS# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE = 10000Restart=on-failureRestartPreventExitStatus=1# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1PrivateTmp=false
EOFsystemctl daemon-reload && systemctl enable --now mysqld
2.4.1.9 修改口令
# 如果使用的是空密码,就不需要修改口令
mysqladmin -u root -p'q&VUtowtA6!.' password 123456
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
2.4.1.10 登录测试
[root@rocky10 mysql-8.0.42]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.42 Source distributionCopyright (c) 2000, 2025, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> status
--------------
mysql Ver 8.0.42 for Linux on x86_64 (Source distribution)Connection id: 8
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.42 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb3
Db characterset: utf8mb3
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /data/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 8 secThreads: 2 Questions: 5 Slow queries: 0 Opens: 120 Flush tables: 3 Open tables: 36 Queries per second avg: 0.625
--------------mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)mysql> exit
Bye
2.4.1.11 一键安装MySQL 8.0源码编译的脚本
Shell脚本源码地址:
Gitee:https://gitee.com/raymond9/shell
Github:https://github.com/raymond999999/shell
可以去上面的Gitee或Github代码仓库拉取脚本。
[root@rocky10 ~]# cat install_mysql_8.0_source_v2.sh
#!/bin/bash
#
#**********************************************************************************
#Author: Raymond
#QQ: 88563128
#Date: 2025-06-10
#FileName: install_mysql_8.0_source_v2.sh
#URL: https://wx.zsxq.com/group/15555885545422
#Description: The mysql source script install supports
# “Rocky Linux 8, 9 and 10, Almalinux 8, 9 and 10, CentOS 7,
# CentOS Stream 8, 9 and 10, openEuler 22.03 and 24.03,
# AnolisOS 8 and 23, OpencloudOS 8 and 9, Kylin Server v10,
# Uos Server v20, Ubuntu 18.04, 20.04, 22.04 and 24.04,
# Debian 11 and 12, openSUSE 15“ operating systems.
#Copyright (C): 2025 All rights reserved
#**********************************************************************************
SRC_DIR=/usr/local/src
INSTALL_DIR=/apps/mysql
DATA_DIR=/data/mysql
COLOR="echo -e \\033[01;31m"
END='\033[0m'MYSQL_URL='https://cdn.mysql.com//Downloads/MySQL-8.0/'
MYSQL_FILE='mysql-boost-8.0.42.tar.gz'CMAKE_URL='https://cmake.org/files/v3.31/'
CMAKE_FILE='cmake-3.31.7-linux-x86_64.tar.gz'GCC_INSTALL_DIR=/usr
GCC_URL='https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.5.0/'
GCC_FILE='gcc-11.5.0.tar.gz'
GMP_URL='http://gcc.gnu.org/pub/gcc/infrastructure/'
GMP_FILE='gmp-6.1.0.tar.bz2'
MPFR_URL='http://gcc.gnu.org/pub/gcc/infrastructure/'
MPFR_FILE='mpfr-3.1.6.tar.bz2'
MPC_URL='http://gcc.gnu.org/pub/gcc/infrastructure/'
MPC_FILE='mpc-1.0.3.tar.gz'
ISL_URL='http://gcc.gnu.org/pub/gcc/infrastructure/'
ISL_FILE='isl-0.18.tar.bz2'CPUS=`lscpu |awk '/^CPU\(s\)/{print $2}'`os(){. /etc/os-releaseMAIN_NAME=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`if [ ${MAIN_NAME} == "Kylin" ];thenMAIN_VERSION_ID=`echo ${VERSION_ID} | awk -F"[=\"]" '{print $1}' | tr -d '[:alpha:]'`elseMAIN_VERSION_ID=`sed -rn '/^VERSION_ID=/s@.*="?([0-9]+)\.?.*"?@\1@p' /etc/os-release`fiif [ ${MAIN_NAME} == "Ubuntu" -o ${MAIN_NAME} == "Debian" ];thenFULL_NAME="${PRETTY_NAME}"elif [ ${MAIN_NAME} == "UOS" ];thenFULL_NAME="${NAME}"elseFULL_NAME="${NAME} ${VERSION_ID}"fi
}check_mysql_file(){if [ ${MAIN_NAME} == "Rocky" -o ${MAIN_NAME} == "AlmaLinux" -o ${MAIN_NAME} == "CentOS" -o ${MAIN_NAME} == "openEuler" -o ${MAIN_NAME} == "Anolis" -o ${MAIN_NAME} == "OpenCloudOS" -o ${MAIN_NAME} == "Kylin" -o ${MAIN_NAME} == "UOS" ];thenrpm -q wget &> /dev/null || { ${COLOR}"安装wget工具,请稍等......"${END};yum -y install wget &> /dev/null; }fiif [ ! -e ${MYSQL_FILE} ];then${COLOR}"缺少${MYSQL_FILE}文件!"${END}${COLOR}'开始下载MySQL源码包......'${END}wget ${MYSQL_URL}${MYSQL_FILE} || { ${COLOR}"MySQL源码包下载失败!"${END}; exit; }else${COLOR}"${MYSQL_FILE}相关文件已准备好!"${END}fi
}check_cmake_file(){if [ ! -e ${CMAKE_FILE} ];then${COLOR}"缺少${CMAKE_FILE}文件!"${END}${COLOR}'开始下载cmake二进制包......'${END}wget ${CMAKE_URL}${CMAKE_FILE} || { ${COLOR}"cmake二进制包下载失败!"${END}; exit; }else${COLOR}"${CMAKE_FILE}相关文件已准备好!"${END}fi
}check_gcc_file(){if [ ! -e ${GCC_FILE} ];then${COLOR}"缺少${GCC_FILE}文件!"${END}${COLOR}'开始下载gcc源码包......'${END}wget ${GCC_URL}${GCC_FILE} || { ${COLOR}"gcc源码包下载失败!"${END}; exit; }else${COLOR}"${GCC_FILE}相关文件已准备好!"${END}fi
}check_file(){cd ${SRC_DIR}check_mysql_fileif [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];thencheck_cmake_filefiif [ ${MAIN_NAME} == "Ubuntu" -a ${MAIN_VERSION_ID} == 18 ];thencheck_cmake_filefiif [ ${MAIN_NAME} == 'Kylin' -a ${MAIN_VERSION_ID} == 10 ];thencheck_gcc_filefiif [ ${MAIN_NAME} == 'UOS' -a ${MAIN_VERSION_ID} == 20 ];thencheck_gcc_filefiif [ ${MAIN_NAME} == 'openSUSE' -a ${MAIN_VERSION_ID} == 15 ];thencheck_gcc_filefi
}install_cmake(){${COLOR}'开始安装cmake,请稍等......'${END}tar xf ${CMAKE_FILE} -C /usr/local/CMAKE_DIR=`echo ${CMAKE_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`ln -s /usr/local/${CMAKE_DIR}/bin/cmake /usr/bin/
}install_gcc(){${COLOR}'开始编译安装gcc,请稍等......'${END}tar xf ${GCC_FILE}GCC_DIR=`echo ${GCC_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`cd ${GCC_DIR}wget ${GMP_URL}${GMP_FILE} || { ${COLOR}"gmp源码包下载失败!"${END}; exit; }wget ${MPFR_URL}${MPFR_FILE} || { ${COLOR}"mpfr源码包下载失败!"${END}; exit; }wget ${MPC_URL}${MPC_FILE} || { ${COLOR}"mpc源码包下载失败!"${END}; exit; }wget ${ISL_URL}${ISL_FILE} || { ${COLOR}"isl源码包下载失败!"${END}; exit; }./contrib/download_prerequisitesmkdir buildcd build../configure --prefix=${GCC_INSTALL_DIR} --disable-multilib make -j ${CPUS} && make install[ $? -eq 0 ] && ${COLOR}"gcc编译安装成功!"${END} || { ${COLOR}"gcc编译安装失败,退出!"${END};exit; }
}install_mysql(){[ -d ${INSTALL_DIR} ] && { ${COLOR}"MySQL数据库已存在,安装失败!"${END};exit; }${COLOR}"开始安装MySQL数据库......"${END}if [ ${MAIN_NAME} == "openSUSE" ];thenid mysql &> /dev/null || { groupadd -r mysql && useradd -s /sbin/nologin -d ${DATA_DIR} -r -g mysql mysql ; ${COLOR}"成功创建mysql用户!"${END}; }elseid mysql &> /dev/null || { useradd -r -s /sbin/nologin -d ${DATA_DIR} mysql ; ${COLOR}"成功创建mysql用户!"${END}; }fi[ -d ${INSTALL_DIR} ] || mkdir -p ${DATA_DIR} &> /dev/nullchown -R mysql:mysql ${DATA_DIR}${COLOR}'开始安装MySQL依赖包,请稍等......'${END}if [ ${MAIN_NAME} == "Rocky" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thendnf config-manager --set-enabled powertoolselsednf config-manager --set-enabled develfifiif [ ${MAIN_NAME} == "AlmaLinux" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thendnf config-manager --set-enabled powertoolselsednf config-manager --set-enabled crbfifiif [ ${MAIN_NAME} == "CentOS" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thendnf config-manager --set-enabled powertoolselsednf config-manager --set-enabled crbfifiif [ ${MAIN_NAME} == "OpenCloudOS" -a ${MAIN_VERSION_ID} == 8 ];thendnf config-manager --set-enabled PowerToolsfiif [ ${MAIN_NAME} == "Rocky" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "Rocky" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 ];thenyum install -y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "AlmaLinux" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "AlmaLinux" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 ];thenyum install -y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "CentOS" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenyum install -y cmake openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "CentOS" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 ];thenyum install -y cmake gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];thenyum install -y centos-release-scl &> /dev/nullMIRROR=mirrors.tencent.comOS_RELEASE_FULL_VERSION=`cat /etc/centos-release | sed -rn 's/^(CentOS Linux release )(.*)( \(Core\))/\2/p'`sed -i.bak -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^# baseurl=|baseurl=|g' -e 's|^#baseurl=|baseurl=|g' -e 's|http://mirror.centos.org/centos|https://'${MIRROR}'/centos-vault|g' -e "s/7/${OS_RELEASE_FULL_VERSION}/g" /etc/yum.repos.d/CentOS-SCLo-*.repoyum install -y devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils gcc gcc-c++ openssl-devel ncurses-devel &> /dev/nullfiif [ ${MAIN_NAME} == "openEuler" ];thenif [ ${MAIN_VERSION_ID} == 22 -o ${MAIN_VERSION_ID} == 24 ];thenyum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "Anolis" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 23 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == 'OpenCloudOS' ];thenif [ ${MAIN_VERSION_ID} == 9 ];thenyum install -y cmake gcc gcc-c++ systemd-devel openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == 'OpenCloudOS' -a ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfiif [ ${MAIN_NAME} == "Kylin" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenyum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "UOS" ];thenif [ ${MAIN_VERSION_ID} == 20 ];thenyum install -y cmake ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "openSUSE" ];thenif [ ${MAIN_VERSION_ID} == 15 ];thenzypper install -y cmake gcc gcc-c++ libopenssl-devel ncurses-devel libtirpc-devel rpcgen &> /dev/nullfifiif [ ${MAIN_NAME} == "Ubuntu" ];thenif [ ${MAIN_VERSION_ID} == 24 ];thenapt update && apt install -y cmake g++ libssl-dev libncurses5-dev pkg-config libtirpc-devfifiif [ ${MAIN_NAME} == "Ubuntu" ];thenif [ ${MAIN_VERSION_ID} == 20 -o ${MAIN_VERSION_ID} == 22 ];thenapt update && apt install -y cmake g++ libssl-dev libncurses5-dev pkg-configfifiif [ ${MAIN_NAME} == "Ubuntu" -a ${MAIN_VERSION_ID} == 18 ];thenapt update && apt install -y gcc-8 g++-8 libssl-dev libncurses5-dev pkg-configfiif [ ${MAIN_NAME} == 'Debian' ];thenif [ ${MAIN_VERSION_ID} == 11 -o ${MAIN_VERSION_ID} == 12 ];thenapt update && apt install -y cmake g++ libssl-dev libncurses5-dev pkg-configfifiif [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];theninstall_cmakefiif [ ${MAIN_NAME} == 'Ubuntu' -a ${MAIN_VERSION_ID} == 18 ];theninstall_cmakefiif [ ${MAIN_NAME} == 'Kylin' ];thenif [ ${MAIN_VERSION_ID} == 10 ];theninstall_gccfifiif [ ${MAIN_NAME} == 'UOS' ];thenif [ ${MAIN_VERSION_ID} == 20 ];theninstall_gccfifiif [ ${MAIN_NAME} == 'openSUSE' ];thenif [ ${MAIN_VERSION_ID} == 15 ];theninstall_gccfifi${COLOR}'开始编译安装MySQL,请稍等......'${END}cd ${SRC_DIR}if [ ${MAIN_NAME} == "openEuler" ];thenif [ ${MAIN_VERSION_ID} == 22 -o ${MAIN_VERSION_ID} == 24 ];thenyum install -y tar &> /dev/nullfifiif [ ${MAIN_NAME} == "Anolis" ];thenif [ ${MAIN_VERSION_ID} == 23 ];thenyum install -y tar &> /dev/nullfifiif [ ${MAIN_NAME} == "OpenCloudOS" ];thenif [ ${MAIN_VERSION_ID} == 9 ];thenyum install -y tar &> /dev/nullfifitar xf ${MYSQL_FILE}MYSQL_DIR=`echo ${MYSQL_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p' | cut -d"-" -f 1,3`cd ${MYSQL_DIR}if [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 9 ];thencmake \-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \-DCMAKE_CXX_FLAGS="-I/usr/include/tirpc/rpc" \-DMYSQL_UNIX_ADDR=${DATA_DIR}/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=${INSTALL_DIR} \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_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_DIR}\-DWITH_BOOST=/usr/local/src/${MYSQL_DIR}/boost/boost_1_77_0/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1elsecmake \-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \-DMYSQL_UNIX_ADDR=${DATA_DIR}/mysql.sock \-DSYSCONFDIR=/etc \-DSYSTEMD_PID_DIR=${INSTALL_DIR} \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_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_DIR}\-DWITH_BOOST=/usr/local/src/${MYSQL_DIR}/boost/boost_1_77_0/ \-DFORCE_INSOURCE_BUILD=1 \-DWITH_SYSTEMD=1fimake -j ${CPUS} && make install[ $? -eq 0 ] && ${COLOR}"MySQL编译安装成功!"${END} || { ${COLOR}"MySQL编译安装失败,退出!"${END};exit; }echo 'PATH='${INSTALL_DIR}'/bin:$PATH' > /etc/profile.d/mysql.sh. /etc/profile.d/mysql.shchown -R mysql:mysql ${INSTALL_DIR}mysqld --initialize-insecure --user=mysql --basedir=${INSTALL_DIR} --datadir=${DATA_DIR}cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=${INSTALL_DIR}
datadir=${DATA_DIR}
port=3306
socket=${DATA_DIR}/mysql.sock
pid-file=${DATA_DIR}/mysql.pid [mysqld_safe]
log-error=${DATA_DIR}/mysql.log [client]
port=3306
socket=${DATA_DIR}/mysql.sock
EOFif [ ${MAIN_NAME} == "Rocky" -o ${MAIN_NAME} == "AlmaLinux" -o ${MAIN_NAME} == "CentOS" -o ${MAIN_NAME} == "openEuler" -o ${MAIN_NAME} == "Anolis" -o ${MAIN_NAME} == "OpenCloudOS" -o ${MAIN_NAME} == "Kylin" -o ${MAIN_NAME} == "UOS" -o ${MAIN_NAME} == "openSUSE" ];thencp ${INSTALL_DIR}/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/elif [ ${MAIN_NAME} == "Ubuntu" ];thenif [ ${MAIN_VERSION_ID} == 24 ];then cp ${INSTALL_DIR}/usr/lib/systemd/system/mysqld.service /lib/systemd/system/fielsecat > /lib/systemd/system//mysqld.service <<EOF
# Copyright (c) 2015, 2025, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is designed to work with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation. The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have either included with
# the program or referenced in the documentation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# systemd service file for MySQL forking server
#[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
Wants=network-online.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysqlType=notify# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0# Execute pre and post scripts as root
# hence, + prefix is used# Needed to create system tables
ExecStartPre=+${INSTALL_DIR}/bin/mysqld_pre_systemd# Start main service
ExecStart=${INSTALL_DIR}/bin/mysqld $MYSQLD_OPTS# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE = 10000Restart=on-failureRestartPreventExitStatus=1# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1PrivateTmp=false
EOFfisystemctl daemon-reloadsystemctl enable --now mysqld &> /dev/null[ $? -ne 0 ] && { ${COLOR}"数据库启动失败,退出!"${END};exit; }${COLOR}"${FULL_NAME}操作系统,MySQL数据库安装完成!"${END}
}main(){oscheck_fileinstall_mysql
}main
