当前位置: 首页 > news >正文

MariaDB源码编译安装

文章目录

    • 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
        • 2.4.4.6 openEuler 22.03 LTS、Kylin Server V10
        • 2.4.4.7 UOS Server V20
        • 2.4.4.8 openSUSE 15
        • 2.4.4.9 Ubuntu Server 20.04/22.04/24.04 LTS、Debian 11/12/13
        • 2.4.4.10 Ubuntu Server 18.04 LTS
      • 2.4.5 准备环境变量
      • 2.4.6 生成数据库文件
      • 2.4.7 准备配置文件
      • 2.4.8 准备启动脚本并启动服务
      • 2.4.9 安全初始化
      • 2.4.10 登录测试
      • 2.4.11 一键安装MariaDB源码编译的脚本

2.4 源码编译安装MariaDB

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

2.4.1 用户和组

# 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 准备数据库目录

mkdir -p /data/mariadbchown mysql:mysql /data/mariadb

2.4.3 下载并解压缩源码包

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

t10

图10 MariaDB首页

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

t11

图11 MariaDB源码包下载

# 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 tarcd /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:

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:

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 一些常用的参数解释

-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包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
-- 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 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:40 (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/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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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包:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y pcre2-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
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包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
-- 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 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:40 (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/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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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包:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
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包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
-- 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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y pcre2-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
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包解压的目录:

cd mariadb-10.11.14/

安装cmake包:

yum install -y cmake

执行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
...
-- 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++包:

yum install -y gcc gcc-c++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable 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包:

yum install -y openssl-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y pcre2-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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

图12 下载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).

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

cd mariadb-10.11.14/

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
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包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
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++包:

yum install -y make gcc gcc-c++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y pcre2-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
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
2.4.4.6 openEuler 22.03 LTS、Kylin Server V10

进入mariadb包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
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++包:

yum install -y make gcc gcc-c++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!
See also "/usr/local/src/mariadb-11.8.3/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-11.8.3/CMakeFiles/CMakeError.log".

安装systemd-devel包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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:* LibXml2* Java (required version >= 1.6)Required for the CONNECT_JDBC feature* JNIRequired 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
-- Generating done
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
yum install -y cmake make 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.7 UOS Server V20

进入mariadb包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

yum install -y cmake

执行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
...
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:146 (message):Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) # 提示,找不到 Curses 库。
Call Stack (most recent call first):/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)/usr/share/cmake/Modules/FindCurses.cmake:258 (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-11.8.3/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-11.8.3/CMakeFiles/CMakeError.log".

安装ncurses-devel:

yum install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!
See also "/usr/local/src/mariadb-11.8.3/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/mariadb-11.8.3/CMakeFiles/CMakeError.log".

安装systemd-devel包:

yum install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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:* LibXml2* Java (required version >= 1.6)Required for the CONNECT_JDBC feature* JNIRequired 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
-- Generating done
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
yum install -y cmake 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.8 openSUSE 15

进入mariadb包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

zypper install -y cmake

执行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
...
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 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:40 (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++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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:

zypper install -y ncurses-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

zypper install -y pcre2-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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包:

zypper install -y systemd-devel

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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:* LibXml2* Java (required version >= 1.6)Required for the CONNECT_JDBC feature* JNIRequired 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 (53.3s)
-- Generating done (0.7s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
zypper install -y cmake gcc gcc-c++ libopenssl-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.9 Ubuntu Server 20.04/22.04/24.04 LTS、Debian 11/12/13

进入mariadb包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

apt update
apt install -y cmake

执行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
...
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 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!

安装g++包:

apt install -y g++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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!

安装libncurses5-dev包:

apt install -y libncurses5-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!

安装libpcre2-dev包:

apt install -y libpcre2-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!

安装libsystemd-dev包:

apt install -y libsystemd-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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 (66.3s)
-- Generating done (0.7s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
apt update
apt install -y cmake g++ libssl-dev libncurses5-dev libpcre2-dev libsystemd-dev# 进入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.10 Ubuntu Server 18.04 LTS

进入mariadb包解压的目录:

cd mariadb-11.8.3/

安装cmake包:

apt update
apt install -y cmake

执行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
...
CMake Error at CMakeLists.txt:17 (CMAKE_MINIMUM_REQUIRED):CMake 3.12.0 or higher is required.  You are running version 3.10.2 # 需要CMake 3.12.0或更高版本。您运行的是3.10.2版本-- Configuring incomplete, errors occurred!

安装cmake:

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

t12

图12 下载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).

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

cd mariadb-10.11.14/

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 CMakeLists.txt:40 (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!

安装g++包:

apt install -y g++

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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 toenable SSL support
Call Stack (most recent call first):CMakeLists.txt:425 (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/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!

安装libncurses5-dev包:

apt install -y libncurses5-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!

安装libpcre2-dev包:

apt install -y libpcre2-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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!

安装libsystemd-dev包:

apt install -y libsystemd-dev

继续执行cmake:

# 再次执行cmake之前先删除“CMakeCache.txt”文件
rm -f CMakeCache.txtcmake . \
-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* JNIRequired 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 (66.3s)
-- Generating done (0.7s)
-- Build files have been written to: /usr/local/src/mariadb-11.8.3

执行make:

make -j $(nproc) && make install

总结编译过程:

# 安装依赖包
apt update
apt install -y g++ libssl-dev libncurses5-dev libpcre2-dev libsystemd-dev# 安装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-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.5 准备环境变量

echo 'PATH=/apps/mariadb/bin:$PATH' > /etc/profile.d/mariadb.sh
. /etc/profile.d/mariadb.shchown -R mysql:mysql /apps/mariadb/

2.4.6 生成数据库文件

# 这里必须先要进入/apps/mariadb/目录,在执行下面命令
cd /apps/mariadb/
./scripts/mariadb-install-db --datadir=/data/mariadb/ --user=mysql

2.4.7 准备配置文件

cat > /etc/my.cnf <<EOF
[mariadb]
basedir=/apps/mariadb/
datadir=/data/mariadb
port=3306
socket=/data/mariadb/mariadb.sock
pid-file=/data/mariadb/mariadb.pid 
log-error=/data/mariadb/mariadb.log[client]
port=3306
socket=/data/mariadb/mariadb.sock
EOF

2.4.8 准备启动脚本并启动服务

# Rocky、Almalinux、CentOS、openEuler、AnolisOS、OpenCloudOS、 Kylin Server、UOS Server、openSUSE
cp /apps/mariadb/support-files/systemd/mariadb.service /usr/lib/systemd/system/# Ubuntu和Debian
cp /apps/mariadb/support-files/systemd/mariadb.service /lib/systemd/system/systemctl daemon-reload && systemctl enable --now mariadb

2.4.9 安全初始化

[root@rocky10 mariadb]# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 11.8.3-MariaDB Source distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> status
--------------
mariadb from 11.8.3-MariaDB, client 15.2 for Linux (x86_64) using readline 5.1Connection id:		3
Current database:	
Current user:		root@localhost
SSL:			Cipher in use is TLS_AES_256_GCM_SHA384, cert is OK
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server:			MariaDB
Server version:		11.8.3-MariaDB Source distribution
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/data/mariadb/mariadb.sock
Uptime:			9 secThreads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.444
--------------MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               | # 有test数据库
+--------------------+
5 rows in set (0.001 sec)MariaDB [(none)]> select user,host from mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| PUBLIC      |           |
|             | localhost | # 有匿名用户 
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
|             | rocky10   | # 有远程登陆用户
+-------------+-----------+
6 rows in set (0.002 sec)MariaDB [(none)]> exit
Bye# 有test数据库、匿名用户和远程登录用户,需要安全初始化
[root@rocky10 mariadb]# mariadb-secure-installationNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):  # 输入 root 的当前密码(不输入),直接敲回车
OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.Switch to unix_socket authentication [Y/n] y # 输入y,切换到 unix_socket 身份验证
Enabled successfully!
Reloading privilege tables..... Success!You already have your root account protected, so you can safely answer 'n'.Change the root password? [Y/n] n # 输入n,不设置root密码... skipping.By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.Remove anonymous users? [Y/n] y # 输入y,移除匿名账户... Success!Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y # 输入y,禁止 root 远程登录... Success!By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.Remove test database and access to it? [Y/n] y # 输入y,移除测试库- Dropping test database...... Success!- Removing privileges on test database...... Success!Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.Reload privilege tables now? [Y/n] y y # 输入y,重新加载权限表... Success!Cleaning up...All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.Thanks for using MariaDB!

2.4.10 登录测试

[root@rocky10 mariadb]# mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 13
Server version: 11.8.3-MariaDB Source distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> status
--------------
mariadb from 11.8.3-MariaDB, client 15.2 for Linux (x86_64) using readline 5.1Connection id:		3
Current database:	
Current user:		root@localhost
SSL:			Cipher in use is TLS_AES_256_GCM_SHA384, cert is OK
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server:			MariaDB
Server version:		11.8.3-MariaDB Source distribution
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/data/mariadb/mariadb.sock
Uptime:			9 secThreads: 1  Questions: 4  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.444
--------------MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.001 sec)
# 可以看到已经没有test数据库了MariaDB [(none)]> select user,host from mysql.user;
+-------------+-----------+
| User        | Host      |
+-------------+-----------+
| PUBLIC      |           |
| mariadb.sys | localhost |
| mysql       | localhost |
| root        | localhost |
+-------------+-----------+
4 rows in set (0.001 sec)
# 可以看到已经没有匿名用户和远程登录用户了MariaDB [(none)]> exit
Bye

2.4.11 一键安装MariaDB源码编译的脚本

Shell脚本源码地址:

Gitee:https://gitee.com/raymond9/shell

Github:https://github.com/raymond999999/shell

可以去上面的Gitee或Github代码仓库拉取脚本。

[root@rocky10 ~]# cat install_mariadb_source_v2.sh 
#!/bin/bash
#
#**********************************************************************************
#Author:        Raymond
#QQ:            88563128
#MP:            Raymond运维
#Date:          2025-09-10
#FileName:      install_mariadb_source_v3.sh
#URL:           https://wx.zsxq.com/group/15555885545422
#Description:   The mariadb 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 LTS, 
#               AnolisOS 8 and 23, OpencloudOS 8 and 9, Kylin Server v10, 
#               UOS Server v20, Ubuntu Server 18.04, 20.04, 22.04 and 24.04 LTS,  
#               Debian 11 , 12 and 13, openSUSE 15“ operating systems.
#Copyright (C): 2025 All rights reserved
#**********************************************************************************
COLOR="echo -e \\033[01;31m"
END='\033[0m'os(){. /etc/os-releaseMAIN_NAME=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`if [ ${MAIN_NAME} == "Kylin" ];thenMAIN_VERSION_ID=`sed -rn '/^VERSION_ID=/s@.*="([[:alpha:]]+)(.*)"$@\2@p' /etc/os-release`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
}os
SRC_DIR=/usr/local/src
INSTALL_DIR=/apps/mariadb
DATA_DIR=/data/mariadb# mariadb 11.8.3包下载地址:"https://mirrors.tuna.tsinghua.edu.cn/mariadb///mariadb-11.8.3/source/mariadb-11.8.3.tar.gz"
# fmt 11.1.4包下载地址:"https://gh-proxy.com/https://github.com/fmtlib/fmt/releases/download/11.1.4/fmt-11.1.4.zip"# mariadb 10.11.14包下载地址:"https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.11.14/source/mariadb-10.11.14.tar.gz"
# fmt 11.0.2包下载地址:"https://gh-proxy.com/https://github.com/fmtlib/fmt/releases/download/11.0.2/fmt-11.0.2.zip"if [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];thenMARIADB_VERSION=10.11.14FMT_VERSION=11.0.2
elseMARIADB_VERSION=11.8.3FMT_VERSION=11.1.4
fi
MARIADB_URL="https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-${MARIADB_VERSION}/source/"
MARIADB_FILE="mariadb-${MARIADB_VERSION}.tar.gz"FMT_URL="https://gh-proxy.com/https://github.com/fmtlib/fmt/releases/download/${FMT_VERSION}/"
FMT_FILE="fmt-${FMT_VERSION}.zip"CMAKE_URL='https://cmake.org/files/v3.31/'
CMAKE_FILE='cmake-3.31.7-linux-x86_64.tar.gz'check_mysql_file(){if [ ${MAIN_NAME} == "Rocky" -o ${MAIN_NAME} == "AlmaLinux" -o ${MAIN_NAME} == "CentOS" -o ${MAIN_NAME} == "Anolis" -o ${MAIN_NAME} == "OpenCloudOS" -o ${MAIN_NAME} == "Kylin" ];thenrpm -q wget &> /dev/null || { ${COLOR}"安装wget工具,请稍等......"${END};yum -y install wget &> /dev/null; }fiif [ ! -e ${MARIADB_FILE} ];then${COLOR}"缺少${MARIADB_FILE}文件!"${END}${COLOR}'开始下载MariaDB源码包......'${END}wget ${MARIADB_URL}${MARIADB_FILE} || { ${COLOR}"MariaDB源码包下载失败!"${END}; exit; }else${COLOR}"${MARIADB_FILE}文件已准备好!"${END}fi
}check_fmt_file(){if [ ! -e ${FMT_FILE} ];then${COLOR}"缺少${FMT_FILE}文件!"${END}${COLOR}'开始下载fmt包......'${END}wget ${FMT_URL}${FMT_FILE} || { ${COLOR}"fmt包下载失败!"${END}; exit; }else${COLOR}"${FMT_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_file(){cd  ${SRC_DIR}check_mysql_filecheck_fmt_fileif [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];thencheck_cmake_filefiif [ ${MAIN_NAME} == "Ubuntu" -a ${MAIN_VERSION_ID} == 18 ];thencheck_cmake_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_mariadb(){[ -d ${INSTALL_DIR} ] && { ${COLOR}"MariaDB数据库已存在,安装失败!"${END};exit; }${COLOR}"开始安装MariaDB数据库......"${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 ${DATA_DIR} ] || mkdir -p ${DATA_DIR} &> /dev/nullchown -R mysql:mysql ${DATA_DIR}${COLOR}'开始安装MariaDB依赖包,请稍等......'${END}if [ ${MAIN_NAME} == "Rocky" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "AlmaLinux" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "CentOS" ];thenif [ ${MAIN_VERSION_ID} == 7 ];thenyum install -y gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullelif [ ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "openEuler" ];thenif [ ${MAIN_VERSION_ID} == 22 ];thenyum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "Anolis" ];thenif [ ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == 'OpenCloudOS' ];thenif [ ${MAIN_VERSION_ID} == 8 ];thenyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullelseyum install -y cmake gcc gcc-c++ openssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "Kylin" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenyum install -y cmake make gcc gcc-c++ openssl-devel ncurses-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "UOS" ];thenif [ ${MAIN_VERSION_ID} == 20 ];thenyum install -y cmake ncurses-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "openSUSE" ];thenif [ ${MAIN_VERSION_ID} == 15 ];thenzypper install -y cmake gcc gcc-c++ libopenssl-devel ncurses-devel pcre2-devel systemd-devel &> /dev/nullfifiif [ ${MAIN_NAME} == "Ubuntu" ];thenif [ ${MAIN_VERSION_ID} == 18 ];thenapt update && apt install -y g++ libssl-dev libncurses5-dev libpcre2-dev libsystemd-develseapt update && apt install -y cmake g++ libssl-dev libncurses5-dev libpcre2-dev libsystemd-devfifiif [ ${MAIN_NAME} == 'Debian' ];thenif [ ${MAIN_VERSION_ID} == 11 -o ${MAIN_VERSION_ID} == 12 -o ${MAIN_VERSION_ID} == 13 ];thenapt update && apt install -y cmake g++ libssl-dev libncurses5-dev libpcre2-dev libsystemd-devfifiif [ ${MAIN_NAME} == "CentOS" -a ${MAIN_VERSION_ID} == 7 ];theninstall_cmakefiif [ ${MAIN_NAME} == 'Ubuntu' -a ${MAIN_VERSION_ID} == 18 ];theninstall_cmakefi${COLOR}'开始编译安装MariaDB,请稍等......'${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 ${MARIADB_FILE}MARIADB_DIR=`echo ${MARIADB_FILE}| sed -nr 's/^(.*[0-9]).*/\1/p'`mkdir -p /usr/local/src/${MARIADB_DIR}/extra/libfmt/src/mv ${FMT_FILE} /usr/local/src/${MARIADB_DIR}/extra/libfmt/src/cd ${MARIADB_DIR}cmake . \-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \-DMYSQL_DATADIR=${DATA_DIR}/ \-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_DIR}/mariadb.sock \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_SYSTEMD=yesmake -j $(nproc) && make install[ $? -eq 0 ] && ${COLOR}"MariaDB编译安装成功"${END} ||  { ${COLOR}"MariaDB编译安装失败,退出!"${END};exit; }echo 'PATH='${INSTALL_DIR}'/bin:$PATH' > /etc/profile.d/mariadb.sh.  /etc/profile.d/mariadb.shchown -R mysql:mysql ${INSTALL_DIR}cd ${INSTALL_DIR}./scripts/mysql_install_db --datadir=${DATA_DIR} --user=mysqlcat > /etc/my.cnf <<-EOF
[mariadb]
basedir=${INSTALL_DIR}/
datadir=${DATA_DIR}
port=3306
socket=${DATA_DIR}/mariadb.sock
pid-file=${DATA_DIR}/mariadb.pid 
log-error=${DATA_DIR}/mariadb.log[client]
port=3306
socket=${DATA_DIR}/mariadb.sock
EOFif [ ${MAIN_NAME} == "Ubuntu" -o ${MAIN_NAME} == "Debian" ];thencp ${INSTALL_DIR}/support-files/systemd/mariadb.service /lib/systemd/system/elsecp ${INSTALL_DIR}/support-files/systemd/mariadb.service /usr/lib/systemd/system/fi systemctl daemon-reload && systemctl enable --now mariadb &> /dev/null[ $? -ne 0 ] && { ${COLOR}"数据库启动失败,退出!"${END};exit; }
}mariadb_secure(){${INSTALL_DIR}/bin/mariadb-secure-installation <<EOFy
n
y
y
y
y
EOF${COLOR}"${FULL_NAME}操作系统,MariaDB数据库安装完成!"${END}
}main(){check_fileinstall_mariadbmariadb_secure
}if [ ${MAIN_NAME} == "Rocky" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 -o ${MAIN_VERSION_ID} == 10 ];thenmainfi
elif [ ${MAIN_NAME} == "AlmaLinux" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 -o ${MAIN_VERSION_ID} == 10 ];thenmainfi
elif [ ${MAIN_NAME} == "CentOS" ];thenif [ ${MAIN_VERSION_ID} == 7 -o ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 -o ${MAIN_VERSION_ID} == 10 ];thenmainfi
elif [ ${MAIN_NAME} == "openEuler" ];thenif [ ${MAIN_VERSION_ID} == 22 -o ${MAIN_VERSION_ID} == 24 ];thenmainfi
elif [ ${MAIN_NAME} == "Anolis" ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 23 ];thenmainfi
elif [ ${MAIN_NAME} == 'OpenCloudOS' ];thenif [ ${MAIN_VERSION_ID} == 8 -o ${MAIN_VERSION_ID} == 9 ];thenmainfi
elif [ ${MAIN_NAME} == "Kylin" ];thenif [ ${MAIN_VERSION_ID} == 10 ];thenmainfi
elif [ ${MAIN_NAME} == "UOS" ];thenif [ ${MAIN_VERSION_ID} == 20 ];thenmainfi
elif [ ${MAIN_NAME} == "openSUSE" ];thenif [ ${MAIN_VERSION_ID} == 15 ];thenmainfi
elif [ ${MAIN_NAME} == "Ubuntu" ];thenif [ ${MAIN_VERSION_ID} == 18 -o ${MAIN_VERSION_ID} == 20 -o ${MAIN_VERSION_ID} == 22 -o ${MAIN_VERSION_ID} == 24 ];thenmainfi
elif [ ${MAIN_NAME} == 'Debian' ];thenif [ ${MAIN_VERSION_ID} == 11 -o ${MAIN_VERSION_ID} == 12 -o ${MAIN_VERSION_ID} == 13 ];thenmainfi
else${COLOR}"此脚本不支持${FULL_NAME}操作系统!"${END}
fi

文章转载自:

http://XUmLfMWN.tpchy.cn
http://prk7MQn0.tpchy.cn
http://g3AHRMla.tpchy.cn
http://Db6Tud6G.tpchy.cn
http://sJ1jqQ7d.tpchy.cn
http://v7CKDvnD.tpchy.cn
http://bHaJ2Wzx.tpchy.cn
http://NDBuOav7.tpchy.cn
http://bBsMEXxZ.tpchy.cn
http://GOTYw8FA.tpchy.cn
http://c7KEDkHz.tpchy.cn
http://2cqkGmec.tpchy.cn
http://RmIj11Gg.tpchy.cn
http://DJLRWW7z.tpchy.cn
http://7hsIC0mA.tpchy.cn
http://cpikiXs4.tpchy.cn
http://XnLyXHIN.tpchy.cn
http://kT3E7f7j.tpchy.cn
http://X1QzJSbU.tpchy.cn
http://59jZ1so1.tpchy.cn
http://2VzBDh7S.tpchy.cn
http://wHzt23tp.tpchy.cn
http://07fGp9SX.tpchy.cn
http://epxhivN9.tpchy.cn
http://2VveEBow.tpchy.cn
http://9DDnEJlF.tpchy.cn
http://RhZ0P4Bd.tpchy.cn
http://rlpUXW5t.tpchy.cn
http://bETyBm6E.tpchy.cn
http://2Sxl7pP5.tpchy.cn
http://www.dtcms.com/a/388651.html

相关文章:

  • 多智能体编排之王:深度解析微软Semantic Kernel的AgentOrchestration架构革命
  • AI工具推荐之ezremove.ai
  • 关于Address Editor中修改基地址和地址空间的指南
  • 【Linux 系统探幽:从入门到内核・系统编程开篇】基础指令与权限精讲,筑牢系统开发根基
  • 【STL库】哈希封装 unordered_map/unordered_set
  • 【AI编程】Qoder AI 编程工具从部署到深度使用实战详解
  • 网络原理——数据链路层
  • 大语言模型的 “幻觉” 难题:技术成因、解决方案与应用风险规避
  • 状态保留功耗门控 SRPG (State Retention Power Gating)
  • Elman神经网络多输入多输出回归预测+SHAP可解释分析+新数据预测(MATLAB源码)
  • 408 王道数据结构的学习记录
  • 使用内存映射读取文件和写入文件,并进行性能测试
  • SQL的UNION用法大全介绍
  • 从Web原生到高性能:如何优化企业数据库管理工具
  • 基于python新能源汽车数据分析可视化系统 懂车帝 Scrapy爬虫 Django框架 Vue框架 大数据项目(源码+文档)✅
  • 线性回归和 softmax 回归
  • mysql远程访问连接设置
  • 《WINDOWS 环境下32位汇编语言程序设计》学习17章 PE文件(2)
  • Linux网络编程:从协议到实战
  • Vector 底层实现详解
  • OpenShift Virtualization - 虚机存储的相关概念 DataVolume、CDI 和 StorageProfile
  • 2025年Web自动化测试与Selenium面试题收集:从基础到进阶的全方位解析
  • pytorch中的FSDP
  • 贪心算法与材料切割问题详解
  • 2. 结构体
  • MySQL 核心操作:多表联合查询与数据库备份恢复
  • vue3学习日记(十四):两大API选型指南
  • 微信支付回调成功通知到本地
  • 量化交易 - Simple Regression 简单线性回归(机器学习)
  • Kubernetes控制器详解:从Deployment到CronJob