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

MySQL 8.0源码编译安装(三)

原创
作者头像
Raymond运维
修改2025-09-11 16:45:34
修改2025-09-11 16:45:34
7000
代码可运行
举报
文章被收录于专栏:干货分享干货分享
运行总次数:0
代码可运行
2.4.1.4.11 Ubuntu Server 24.04 LTS

进入mysql包解压的目录:

代码语言:javascript
代码运行次数:0
运行
复制
cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt install -y cmake

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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 the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


-- Running cmake version 3.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 environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。


-- Configuring incomplete, errors occurred!

安装g++包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y g++

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libssl-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libncurses5-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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-config
    RedHat/Fedora/Oracle Linux: yum install pkg-config
    SuSE:                       zypper install pkg-config

Call 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y pkg-config

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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 required
  packages: # 提示,找不到 RPC 开发库。您需要安装所需的包: 

    Debian/Ubuntu:              apt install libtirpc-dev
    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
    SuSE:                       zypper install glibc-devel

Call 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libtirpc-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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:

代码语言:javascript
代码运行次数:0
运行
复制
make -j $(nproc) && make install

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
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=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1

# 执行make
make -j $(nproc) && make install
2.4.1.4.12 Ubuntu Server 20.04/22.04 LTS和Debian 11/12

进入mysql包解压的目录:

代码语言:javascript
代码运行次数:0
运行
复制
cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt install -y cmake

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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 the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


-- Running cmake version 3.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 environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装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++包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y g++

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libssl-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libncurses5-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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-config
    RedHat/Fedora/Oracle Linux: yum install pkg-config
    SuSE:                       zypper install pkg-config

Call 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y pkg-config

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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:

代码语言:javascript
代码运行次数:0
运行
复制
make -j $(nproc) && make install

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
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=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1

# 执行make
make -j $(nproc) && make install
2.4.1.4.13 Ubuntu Server 18.04 LTS

进入mysql包解压的目录:

代码语言:javascript
代码运行次数:0
运行
复制
cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt install -y cmake

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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所示。

t38
t38

图38 下载cmake二进制包

代码语言:javascript
代码运行次数:0
运行
复制
# 卸载cmake
apt remove -y cmake

cd ..

# 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.7

CMake suite maintained and supported by Kitware (kitware.com/cmake).

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

代码语言:javascript
代码运行次数:0
运行
复制
cd mysql-8.0.42/

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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 the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


-- Running cmake version 3.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-8


CMake 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++包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y gcc-8 g++-8

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libssl-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libncurses5-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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-config
    RedHat/Fedora/Oracle Linux: yum install pkg-config
    SuSE:                       zypper install pkg-config

Call 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y pkg-config

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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:

代码语言:javascript
代码运行次数:0
运行
复制
make -j $(nproc) && make install

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
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=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1

# 执行make
make -j $(nproc) && make install
2.4.1.4.14 Debian 13

进入mysql包解压的目录:

代码语言:javascript
代码运行次数:0
运行
复制
cd mysql-8.0.42/

安装cmake包:

代码语言:javascript
代码运行次数:0
运行
复制
apt update
apt install -y cmake

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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:585 (PROJECT):
  No CMAKE_CXX_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH. # 通过设置环境变量 “CXX” 或 CMake 缓存条目CMAKE_CXX_COMPILER完整路径添加到编译器,或者添加到编译器名称(如果它在 PATH 中),需要安装g++。


-- Configuring incomplete, errors occurred!

安装g++包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y g++

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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/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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libssl-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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. d 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libncurses5-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-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-config
    RedHat/Fedora/Oracle Linux: yum install pkg-config
    SuSE:                       zypper install pkg-config

Call 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.31/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
Call Stack (most recent call first):
  /usr/share/cmake-3.31/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /usr/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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y pkg-config

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SYSTEMD=1
...
--   Package 'systemd', required by 'virtual:world', not found
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!

在编译参数里面删除下面内容:

代码语言:javascript
代码运行次数:0
运行
复制
-DWITH_SYSTEMD=1

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1
...
CMake Warning at cmake/rpc.cmake:41 (MESSAGE):
  Cannot find RPC development libraries.  You need to install the required
  packages:

    Debian/Ubuntu:              apt install libtirpc-dev
    RedHat/Fedora/Oracle Linux: yum install libtirpc-devel
    SuSE:                       zypper install glibc-devel

Call 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包:

代码语言:javascript
代码运行次数:0
运行
复制
apt install -y libtirpc-dev

继续执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txt

cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1
...
-- Configuring done (47.2s)
-- Generating done (4.0s)
CMake Warning:
  Manually-specified variables were not used by the project:

    SYSTEMD_PID_DIR


-- Build files have been written to: /usr/local/src/mysql-8.0.42

执行make:

代码语言:javascript
代码运行次数:0
运行
复制
make -j $(nproc) && make install

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
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=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DWITH_BOOST=/usr/local/src/mysql-8.0.42/boost/boost_1_77_0/ \
-DFORCE_INSOURCE_BUILD=1

# 执行make
make -j $(nproc) && make install

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.4.1.4.11 Ubuntu Server 24.04 LTS
  • 2.4.1.4.12 Ubuntu Server 20.04/22.04 LTS和Debian 11/12
  • 2.4.1.4.13 Ubuntu Server 18.04 LTS
  • 2.4.1.4.14 Debian 13
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档