问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在ARM架构的欧拉操作系统上编译安装MySQL 8.4.2

创作时间:
作者:
@小白创作中心

在ARM架构的欧拉操作系统上编译安装MySQL 8.4.2

引用
CSDN
1.
https://m.blog.csdn.net/dqchouyang/article/details/145117023

本文将详细介绍如何在欧拉操作系统(openEuler 22.03 LTS-SP4)的ARM架构下,从源码编译安装MySQL 8.4.2。文章将涵盖环境检查、依赖下载、编译安装等步骤,并提供具体的命令行操作示例。

环境检查

首先,确认当前操作系统版本和CPU架构:

cat /etc/os-release 
# 输出示例
NAME="openEuler"
VERSION="22.03 (LTS-SP4)"

uname -i
# 输出示例
aarch64

下载所需软件包

MySQL源码下载

访问MySQL官方下载页面:https://downloads.mysql.com/archives/community/,选择源码包进行下载。如果浏览器下载速度较慢,可以使用命令行下载:

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.4.2.tar.gz

Boost库下载

MySQL编译需要Boost库,可以从https://www.boost.org/users/download/下载最新版本。当前最新版本为1.87.0,下载命令如下:

wget https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz

检查编译工具版本

GCC版本检查

gcc --version
# 输出示例
gcc (GCC) 10.3.1

GCC 10.3.1版本足以支持MySQL 8.4.2的编译。

CMake版本检查

cmake --version
# 输出示例
cmake version 3.22.0

CMake 3.22.0版本也满足MySQL 8.4.2的编译需求。

安装MySQL

建议将源码目录、编译目录和安装目录分开,避免混淆导致的编译错误。

目录结构如下:

/export/servers/
                ├── mysql-8.4.2       # 安装目录
                └── mysql_package     # 源码文件夹
                    ├── boost_1_87_0  # 依赖的boost,解压后的文件夹
                    ├── mysql-8.4.2   # 源码目录
                       ├── build      # 源码内的编译目录(手动创建)

解压MySQL源码包并进入编译目录:

cd /export/servers/mysql_package/mysql-8.4.2/build

执行CMake配置:

cmake3   -DCMAKE_INSTALL_PREFIX=/export/servers/mysql-8.4.2 \   # 安装目录
         -DDEFAULT_CHARSET=utf8mb4 \
         -DDEFAULTCOLLATION=utf8mb4_general_ci \
         -DEXTRA_CHARSETS=all \
         -DWITH_MYISAM_STORAGE_ENGINE=1 \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
         -DWITH_PARTITION_STORAGE_ENGINE=1 \
         -DENABLED_LOCAL_INFILE=1 \
         -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
         -DWITH_BOOST=/export/servers/mysql_package \    # boost的上级目录
         -DCMAKE_C_COMPILER=/usr/bin/gcc \               # gcc的绝对路径
         -DCMAKE_CXX_COMPILER=/usr/bin/g++ \             # g++的绝对路径
         -DFORCE_INSOURCE_BUILD=1

编译MySQL源码:

make -j64      # 并行编译,根据CPU核心数调整并发数

安装MySQL:

make install   # 复制文件到安装目录

安装成功后,会看到类似以下的输出:

...
-- Installing: /export/servers/mysql-8.4.2/man/man1/mysqld_multi.1
-- Installing: /export/servers/mysql-8.4.2/man/man1/mysqld_safe.1
-- Installing: /export/servers/mysql-8.4.2/man/man8/mysqld.8
-- Installing: /export/servers/mysql-8.4.2/man/man1/mysqlrouter.1
-- Installing: /export/servers/mysql-8.4.2/man/man1/mysqlrouter_passwd.1
-- Installing: /export/servers/mysql-8.4.2/man/man1/mysqlrouter_plugin_info.1

后续步骤

完成上述步骤后,还需要创建MySQL系统用户、配置my.cnf文件、启动MySQL服务、创建用户和授权等操作。这些步骤的具体实现可以参考MySQL官方文档或相关技术资料。

常见问题

如果在安装过程中遇到类似以下的错误:

make install
...
-- Installing: /export/servers/mysql-8.4.2/lib/libmysqlclient.a
-- Installing: /export/servers/mysql-8.4.2/lib/plugin/daemon_example.ini
CMake Error at plugin/group_replication/cmake_install.cmake:52 (file):
  file INSTALL cannot find
  "/export/servers/mysql-8.4.2/plugin_output_directory/group_replication.so":
  No such file or directory.
Call Stack (most recent call first):
  cmake_install.cmake:97 (include)

这通常是由于源码目录和编译目录混淆导致的。确保按照推荐的目录结构进行操作,并在执行CMake时不要在命令末尾添加.

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号