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

MariaDB源码编译安装(一)

原创
作者头像
Raymond运维
修改2025-09-11 17:11:36
修改2025-09-11 17:11:36
11200
代码可运行
举报
文章被收录于专栏:干货分享干货分享
运行总次数:0
代码可运行

2.4 源码编译安装MariaDB

建议:内存6G以上,否则编译时可能会出错,这里设置的4C8G。

2.4.1 用户和组

代码语言:javascript
代码运行次数:0
运行
复制
# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、 Kylin Server、UOS Server、Ubuntu、Debian
useradd -r -s /sbin/nologin -d /data/mariadb mysql

# openSUSE
groupadd -r mysql
useradd -s /sbin/nologin -d /data/mariadb -r -g mysql mysql

2.4.2 准备数据库目录

代码语言:javascript
代码运行次数:0
运行
复制
mkdir -p /data/mariadb

chown mysql:mysql /data/mariadb

2.4.3 下载并解压缩源码包

MariaDB源码包下载,去“https://mariadb.org/”网站下载,选择“Download”。

t10
t10

图10 MariaDB首页

在打开的网页,在“MariaDB Server”下面选择“MariaDB Server Version为:MariaDB Server 11.8.3”,选择“Operating System为:Source”,然后选择“Mirror为:清华大学 TUNA 协会 (Tsinghua University TUNA Association)”,最后选择“Download”下载。

t11
t11

图11 MariaDB源码包下载

代码语言:javascript
代码运行次数:0
运行
复制
# Rocky、Almalinux、CentOS、AnolisOS、OpenCloudOS、Kylin Server默认没有wget包,需要安装
yum install -y wget

# openEuler 22.03/24.03 LTS、AnolisOS 23、OpenCloudOS 9没有安装tar包,需要安装
yum install -y tar

cd /usr/local/src

Rocky 8/9/10、Almalinux 8/9/10、CentOS Stream 8/9/10、openEuler 22.03/24.03 LTS、AnolisOS 8/23、OpenCloudOS 8/9、Kylin Server v10、UOS Server v20、openSUSE 15、Ubuntu Server 18.04/20.04/22.04/24.04 LTS、Debian 11/12/13:

代码语言:javascript
代码运行次数:0
运行
复制
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-11.8.3/source/mariadb-11.8.3.tar.gz
tar xf mariadb-11.8.3.tar.gz

# 下载fmt-11.1.4.zip
# github官方
https://github.com/fmtlib/fmt/releases/download/11.1.4/fmt-11.1.4.zip

# github镜像站
wget "https://gh-proxy.com/https://github.com/fmtlib/fmt/releases/download/11.1.4/fmt-11.1.4.zip"
mkdir -p /usr/local/src/mariadb-11.8.3/extra/libfmt/src/
mv fmt-11.1.4.zip /usr/local/src/mariadb-11.8.3/extra/libfmt/src/

CentOS 7:

代码语言:javascript
代码运行次数:0
运行
复制
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.11.14/source/mariadb-10.11.14.tar.gz
tar xf mariadb-10.11.14.tar.gz

# fmt-11.0.2.zip
# github官方
wget https://github.com/fmtlib/fmt/releases/download/11.0.2/fmt-11.0.2.zip

# github镜像站
wget "https://gh-proxy.com/https://github.com/fmtlib/fmt/releases/download/11.0.2/fmt-11.0.2.zip"
mkdir -p /usr/local/src/mariadb-10.11.14/extra/libfmt/src/
mv fmt-11.0.2.zip /usr/local/src/mariadb-10.11.14/extra/libfmt/src/

2.4.4 源码编译安装mariadb

编译安装说明 :

利用cmake编译,而利用传统方法,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译

编译选项:https://mariadb.com/docs/server/server-management/install-and-upgrade-mariadb/installing-mariadb/compiling-mariadb-from-source/generic-build-instructions

MariaDB cmake 一些常用的参数解释

代码语言:javascript
代码运行次数:0
运行
复制
-DCMAKE_INSTALL_PREFIX # MariaDB 的安装目录
-DMYSQL_DATADIR # MariaDB 数据存储路径
-DSYSCONFDIR # 配置文件目录
-DMYSQL_USER # MariaDB 启动的用户名称,默认为 mysql
-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_PARTITION_STORAGE_ENGINE # 是 MariaDB 源码编译安装时用于启用分区存储引擎的 CMake 参数,其作用是编译分区引擎到服务器中,使其支持分区功能(MariaDB 的分区引擎以插件形式构建,可通过此参数静态编译到服务器中)。
-DWITHOUT_MROONGA_STORAGE_ENGINE # 该参数用于在编译 MariaDB 时 禁用 Mroonga 存储引擎(即不将其编译到服务器中)。
-DWITH_DEBUG # 是 MariaDB 编译时的一个 CMake 参数,用于启用或禁用调试模式,1是启用,0是禁用
-DWITH_READLINE # 启用 Readline 库支持,提升 MariaDB 命令行客户端的交互性,1是启用,0是禁用。
-DWITH_SSL # 用于指定是否启用 SSL 支持,system是使用系统已安装的 OpenSSL(推荐,依赖系统包)。
-DWITH_ZLIB # 用于指定是否启用对 zlib 压缩库 的支持,system是使用系统中已安装的 zlib 库(推荐) 。
-DWITH_PCRE # 用于指定 是否以及如何启用 PCRE(Perl Compatible Regular Expressions)库 支持。这个库是 MariaDB 用于处理 正则表达式匹配(如  REGEXP ,  RLIKE ,  REGEXP_REPLACE  等 SQL 语法)的核心依赖。system是使用操作系统中已安装的 PCRE 库(推荐,减少重复编译)
-DWITH_BOOST # 用来告诉 MariaDB 的构建系统 到哪里去找 Boost C++ 库。system是 让 CMake 直接去找 系统已安装的 boost-devel 包。
-DWITH_LIBWRAP # 用于控制是否启用 libwrap(TCP Wrappers)支持,0是禁用 libwrap,不启用 TCP Wrappers 支持,避免潜在的性能影响
-DENABLED_LOCAL_INFILE # 是否开启 load data infile 命令 - 参数:1 or 0
-DMYSQL_UNIX_ADDR # Unix socket 文件路径
-DDEFAULT_CHARSET # 默认字符集
-DDEFAULT_COLLATION # 校验字符
-DWITH_SYSTEMD # 是否 systemctl 管理 - 参数:1 or 0
2.4.4.1 Rocky 9/10、Almalinux 9/10、AnolisOS 23和OpenCloudOS 9

进入mariadb包解压的目录:

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

安装cmake包:

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

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:40 (PROJECT):
  No CMAKE_C_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.  # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。


CMake Error at CMakeLists.txt:40 (PROJECT):
  No CMAKE_CXX_COMPILER could be found.

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


-- Configuring incomplete, errors occurred!

安装gcc和gcc-c++包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y gcc gcc-c++

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) # 提示,找不到OpenSSL,请尝试在系统变量OpenSSL_root_DIR中设置OpenSSL根文件夹的路径(缺少:OpenSSL_CRYPTO_LIBRARY OpenSSL_ININCLUDE_DIR)
CMake Error at cmake/ssl.cmake:150 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:425 (MYSQL_CHECK_SSL)


-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y openssl-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindCurses.cmake:268 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/readline.cmake:55 (FIND_PACKAGE)
  cmake/readline.cmake:188 (FIND_CURSES)
  CMakeLists.txt:427 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

安装ncurses-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y ncurses-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/pcre.cmake:99 (MESSAGE):
  system pcre2-8 library is not found or unusable # 提示,系统pcre2-8库找不到或不可用
Call Stack (most recent call first):
  CMakeLists.txt:431 (CHECK_PCRE)


-- Configuring incomplete, errors occurred!

安装pcre2-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y pcre2-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/systemd.cmake:77 (MESSAGE):
  Requested WITH_SYSTEMD=yes however no dependencies installed/found
Call Stack (most recent call first): # 请求的WITH_SYSTEMD=是,但未安装/找到依赖项调用堆栈(最近的调用优先)
  CMakeLists.txt:434 (CHECK_SYSTEMD)


-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y systemd-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
# 编译完成后会有类似如下的输出
-- The following OPTIONAL packages have not been found:

 * ZLIB
 * LibXml2
 * Java (required version >= 1.6)
   Required for the CONNECT_JDBC feature
 * JNI
   Required for the CONNECT_JDBC feature
 * Boost (required version >= 1.40.0)
   Required for the OQGraph storage engine
 * GSSAPI
 * CURL
 * BZip2
 * LZ4 (required version >= 1.6)
 * LibLZMA
 * LZO
 * Snappy
 * BISON (required version >= 2.4)

-- Configuring done (62.5s)
-- Generating done (0.9s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

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

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
yum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel

# 进入mariadb包解压的目录
cd mariadb-11.8.3/

# 执行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes

# 执行make
make -j $(nproc) && make install
2.4.4.2 Rocky 8、Almalinux 8、CentOS Stream 8、AnolisOS 8和OpenCloudOS 8

进入mariadb包解压的目录:

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

安装cmake包:

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

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:40 (PROJECT):
  No CMAKE_C_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.  # 提示,通过设置环境变量 “CC” 或 CMake 缓存条目CMAKE_C_COMPILER到编译器,或者如果编译器名称在 PATH,需要安装gcc。


CMake Error at CMakeLists.txt:40 (PROJECT):
  No CMAKE_CXX_COMPILER could be found.

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


-- Configuring incomplete, errors occurred!

安装gcc和gcc-c++包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y gcc gcc-c++

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) # 提示,找不到OpenSSL,请尝试在系统变量OpenSSL_root_DIR中设置OpenSSL根文件夹的路径(缺少:OpenSSL_CRYPTO_LIBRARY OpenSSL_ININCLUDE_DIR)
CMake Error at cmake/ssl.cmake:150 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:425 (MYSQL_CHECK_SSL)


-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y openssl-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindCurses.cmake:268 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/readline.cmake:55 (FIND_PACKAGE)
  cmake/readline.cmake:188 (FIND_CURSES)
  CMakeLists.txt:427 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

安装ncurses-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y ncurses-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/systemd.cmake:77 (MESSAGE):
  Requested WITH_SYSTEMD=yes however no dependencies installed/found
Call Stack (most recent call first): # 请求的WITH_SYSTEMD=是,但未安装/找到依赖项调用堆栈(最近的调用优先)
  CMakeLists.txt:434 (CHECK_SYSTEMD)


-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y systemd-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
# 编译完成后会有类似如下的输出
-- The following OPTIONAL packages have not been found:

 * Python3
 * LibXml2
 * Java (required version >= 1.6)
   Required for the CONNECT_JDBC feature
 * JNI
   Required for the CONNECT_JDBC feature
 * Boost (required version >= 1.40.0)
   Required for the OQGraph storage engine
 * CURL
 * BZip2
 * LZ4 (required version >= 1.6)
 * LibLZMA
 * LZO
 * Snappy
 * BISON (required version >= 2.4)

-- Configuring done (54.7s)
-- Generating done (0.8s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

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

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
yum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel

# 进入mariadb包解压的目录
cd mariadb-11.8.3/

# 执行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes

# 执行make
make -j $(nproc) && make install
2.4.4.3 CentOS Stream 9/10

进入mariadb包解压的目录:

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

安装cmake包:

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

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) # 提示,找不到OpenSSL,请尝试在系统变量OpenSSL_root_DIR中设置OpenSSL根文件夹的路径(缺少:OpenSSL_CRYPTO_LIBRARY OpenSSL_ININCLUDE_DIR)
CMake Error at cmake/ssl.cmake:150 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:425 (MYSQL_CHECK_SSL)


-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y openssl-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindCurses.cmake:268 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/readline.cmake:55 (FIND_PACKAGE)
  cmake/readline.cmake:188 (FIND_CURSES)
  CMakeLists.txt:427 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y ncurses-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/pcre.cmake:99 (MESSAGE):
  system pcre2-8 library is not found or unusable # 提示,系统pcre2-8库找不到或不可用
Call Stack (most recent call first):
  CMakeLists.txt:431 (CHECK_PCRE)


-- Configuring incomplete, errors occurred!

安装pcre2-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y pcre2-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/systemd.cmake:77 (MESSAGE):
  Requested WITH_SYSTEMD=yes however no dependencies installed/found
Call Stack (most recent call first): # 请求的WITH_SYSTEMD=是,但未安装/找到依赖项调用堆栈(最近的调用优先)
  CMakeLists.txt:434 (CHECK_SYSTEMD)


-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y systemd-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
# 编译完成后会有类似如下的输出
-- The following OPTIONAL packages have not been found:

 * ZLIB
 * LibXml2
 * Java (required version >= 1.6)
   Required for the CONNECT_JDBC feature
 * JNI
   Required for the CONNECT_JDBC feature
 * Boost (required version >= 1.40.0)
   Required for the OQGraph storage engine
 * GSSAPI
 * CURL
 * BZip2
 * LZ4 (required version >= 1.6)
 * LibLZMA
 * LZO
 * Snappy
 * BISON (required version >= 2.4)

-- Configuring done (75.9s)
-- Generating done (1.0s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

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

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
yum install -y cmake openssl-devel ncurses-devel pcre2-devel systemd-devel

# 进入mariadb包解压的目录
cd mariadb-11.8.3/

# 执行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes

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

进入mariadb包解压的目录:

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

安装cmake包:

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

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name. # 提示,CMake错误:找不到C编译器:“CMake_C_compiler-NOTFOUND”。请将CMAKE_C_COMPILER设置为有效的编译器路径或名称,需要安装gcc。
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Please set CMAKE_CXX_COMPILER to a valid compiler path or name. # CMake错误:找不到CXX编译器:“CMake_CXX_compiler-NOTFOUND”。请将CMAKE_CXX_COMPILER设置为有效的编译器路径或名称,需要安装gcc-c++。

安装gcc和gcc-c++包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y gcc gcc-c++

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing:  OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR)   # 提示,找不到OpenSSL,请尝试在系统变量OpenSSL_root_DIR中设置OpenSSL根文件夹的路径(缺少:OpenSSL_CRYPTO_LIBRARY OpenSSL_ININCLUDE_DIR)
CMake Error at cmake/ssl.cmake:169 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:425 (MYSQL_CHECK_SSL)


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeError.log".

安装openssl-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y openssl-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:108 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:315 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindCurses.cmake:159 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/readline.cmake:55 (FIND_PACKAGE)
  cmake/readline.cmake:188 (FIND_CURSES)
  CMakeLists.txt:427 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeError.log".

安装ncurses-devel:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y ncurses-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/pcre.cmake:99 (MESSAGE):
  system pcre2-8 library is not found or unusable # 提示,系统pcre2-8库找不到或不可用
Call Stack (most recent call first):
  CMakeLists.txt:431 (CHECK_PCRE)


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeError.log".

安装pcre2包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y pcre2-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at tpool/CMakeLists.txt:18 (TARGET_SOURCES):
  Unknown CMake command "TARGET_SOURCES".


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-10.11.14/CMakeFiles/CMakeError.log".

安装cmake:

去“https://cmake.org/download/”网址下载cmake二进制包,如图12所示。

t12
t12

图12 下载cmake二进制包

代码语言:javascript
代码运行次数:0
运行
复制
# 卸载cmake
yum 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@centos7 src]# cmake --version
cmake version 3.31.7

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

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

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

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/systemd.cmake:77 (MESSAGE):
  Requested WITH_SYSTEMD=yes however no dependencies installed/found
Call Stack (most recent call first): # 提示,请求的WITH_SYSTEMD=是,但未安装/找到依赖项调用堆栈(最近的调用优先)
  CMakeLists.txt:434 (CHECK_SYSTEMD)


-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y systemd-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
# 编译完成后会有类似如下的输出
-- The following OPTIONAL packages have not been found:

 * Git
 * LibXml2
 * Java (required version >= 1.6)
   Required for the CONNECT_JDBC feature
 * JNI
   Required for the CONNECT_JDBC feature
 * Boost (required version >= 1.40.0)
   Required for the OQGraph storage engine
 * CURL
 * BZip2
 * LZ4 (required version >= 1.6)
 * LibLZMA
 * LZO
 * Snappy
 * BISON (required version >= 2.4)

-- Configuring done (26.8s)
-- Generating done (0.8s)
-- Build files have been written to: /usr/local/src/mariadb-10.11.14

执行make:

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

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
yum install -y gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-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/

# 进入mariadb包解压的目录
cd mariadb-10.11.14/

# 执行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes

# 执行make
make -j $(nproc) && make install
2.4.4.5 openEuler 24.03 LTS

进入mariadb包解压的目录:

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

安装cmake包:

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

执行cmake:

代码语言:javascript
代码运行次数:0
运行
复制
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
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找不到与“Unix Makefiles”对应的构建程序。未设置CMAKE_MAKE_PROGRAM。您可能需要选择不同的构建工具,需要安装make。
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage # 提示,CMake错误:启用语言后未设置CMake_C_COMPILER,需要安装gcc。
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage # 提示,CMake错误:启用语言后未设置CMake_CXX_COMPILER,,需要安装gcc-c++。
-- Configuring incomplete, errors occurred!

安装gcc和gcc-c++包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y make gcc gcc-c++

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
-- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) # 提示,找不到OpenSSL,请尝试在系统变量OpenSSL_root_DIR中设置OpenSSL根文件夹的路径(缺少:OpenSSL_CRYPTO_LIBRARY OpenSSL_ININCLUDE_DIR)
CMake Error at cmake/ssl.cmake:150 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:425 (MYSQL_CHECK_SSL)


-- Configuring incomplete, errors occurred!

安装openssl-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y openssl-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindCurses.cmake:268 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  cmake/readline.cmake:55 (FIND_PACKAGE)
  cmake/readline.cmake:188 (FIND_CURSES)
  CMakeLists.txt:427 (MYSQL_CHECK_READLINE)


-- Configuring incomplete, errors occurred!

安装ncurses-devel:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y ncurses-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/pcre.cmake:99 (MESSAGE):
  system pcre2-8 library is not found or unusable # 提示,系统pcre2-8库找不到或不可用
Call Stack (most recent call first):
  CMakeLists.txt:431 (CHECK_PCRE)


-- Configuring incomplete, errors occurred!

安装pcre2包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y pcre2-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
CMake Error at cmake/systemd.cmake:77 (MESSAGE):
  Requested WITH_SYSTEMD=yes however no dependencies installed/found
Call Stack (most recent call first): # 请求的WITH_SYSTEMD=是,但未安装/找到依赖项调用堆栈(最近的调用优先)
  CMakeLists.txt:434 (CHECK_SYSTEMD)


-- Configuring incomplete, errors occurred!

安装systemd-devel包:

代码语言:javascript
代码运行次数:0
运行
复制
yum install -y systemd-devel

继续执行cmake:

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

cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes
...
# 编译完成后会有类似如下的输出
-- The following OPTIONAL packages have not been found:

 * ZLIB
 * LibXml2
 * Java (required version >= 1.6)
   Required for the CONNECT_JDBC feature
 * JNI
   Required for the CONNECT_JDBC feature
 * Boost (required version >= 1.40.0)
   Required for the OQGraph storage engine
 * GSSAPI
 * CURL
 * BZip2
 * LZ4 (required version >= 1.6)
 * LibLZMA
 * LZO
 * Snappy
 * BISON (required version >= 2.4)

-- Configuring done (70.7s)
-- Generating done (0.7s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

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

总结编译过程:

代码语言:javascript
代码运行次数:0
运行
复制
# 安装依赖包
yum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel

# 进入mariadb包解压的目录
cd mariadb-11.8.3/

# 执行cmake
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mariadb \
-DMYSQL_DATADIR=/data/mariadb/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_PCRE=system \
-DWITH_BOOST=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mariadb/mariadb.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SYSTEMD=yes

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.4 源码编译安装MariaDB
    • 2.4.1 用户和组
    • 2.4.2 准备数据库目录
    • 2.4.3 下载并解压缩源码包
    • 2.4.4 源码编译安装mariadb
      • 2.4.4.1 Rocky 9/10、Almalinux 9/10、AnolisOS 23和OpenCloudOS 9
      • 2.4.4.2 Rocky 8、Almalinux 8、CentOS Stream 8、AnolisOS 8和OpenCloudOS 8
      • 2.4.4.3 CentOS Stream 9/10
      • 2.4.4.4 CentOS 7
      • 2.4.4.5 openEuler 24.03 LTS
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档