CentOS-AltArch-7(ARM版)下源码编译MySQL5.7.31

简介: CentOS-AltArch-7(ARM版)下源码编译MySQL5.7.31

640.png

本文参考华为鲲鹏社区相关文档完成

https://www.huaweicloud.com/kunpeng/

系统为aarch64位的CentOS AltArch系统


1、准备如下cmake gcc相关源码包


cmake


https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz


gcc


https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz


gcc所需的依赖包


https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2


2、配置CentOS-AltArch-7 华为云yum源


cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-AltArch-7.repo
sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache


640.png640.png

3、检查是否有安装cmake


下载cmake源码包

下载地址 https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz

编译cmake


cp /home/cmake-3.9.2.tar.gz /usr/local/src
cd /usr/local/src
tar -zxf cmake-3.9.2.tar.gz
cd cmake-3.9.2
./configure
make && make install


测试cmake是否安装完成 cmake -version

640.png

640.png

640.png

4、升级gcc


640.png

gcc --version
yum install bison* ncurses*
cd /home
tar -zxf gcc-7.3.0.tar.gz
cd gcc-build-7.3.0/
./contrib/download_prerequisites
#下载isl、gmp、mpc、mpfr的依赖包上传至该目录下
cat /proc/cpuinfo| grep "processor"| wc -l #查看当前CPU核心数,make编译时“-j”参数可利用多核CPU加快编译速度
cd /home/gcc-7.3.0
mkdir gcc-build-7.3.0
cd gcc-build-7.3.0
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr
make -j1 #只有一核,若有多核,修改为对应核心数加快编译速度
make install


640.png

640.png

640.png

验证gcc是否升级成功


cd /usr/lib64
ll |grep libstdc++.so

640.png

5、源码编译升级MySQL


下载MySQL 5.7.31版本的源码包


yum install openssl-devel.aarch64

640.png

yum install openssl-devel.aarch64


http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

下载补丁文件,并放置到mysql-5.7.x路径下补丁下载路径:https://bugs.mysql.com/file.php?id=28180&bug_id=94699


tar -zxf mysql-boost-5.7.31.tar.gz -C /home 
cd /home
cp 0001-Bug-94699-Mysql-deadlock-and-bugcheck-on-aarch64.patch mysql-5.7.31/
cd mysql-5.7.31/
patch -p1 < 0001-Bug-94699-Mysql-deadlock-and-bugcheck-on-aarch64.patch
vim cmake.sh
#添加如下行
-DWITH_BOOST=的路径为实际boost所在路径
cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/mysql-5.7.31/boost/boost_1_59_0/


#若在预编译时出现依赖包不全的情况,可自行查阅资料安装依赖包,并重新预编译。重新预编译前,需要执行rm -rf CMakeCache.txt


640.png


chmod +x cmake.sh
./cmake.sh 
make -j1
make install


640.png640.png

编译安装出现如下报错时的解决方法


cp /usr/include/sys/prctl.h /home/mysql-5.7.31/include/
vi /home/mysql-5.7.31/sql/mysqld.cc 添加如下图所示一行

640.png

640.png

6、编译完成启动并配置MySQL


1、创建mysql用户,MySQL相关目录并修改目录属主


cd /data/
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql mysql
cd mysql
mkdir data run log
bin/mysqld --initialize --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql 
touch /data/mysql/log/mysql.log
touch /data/mysql/run/mysql.pid
chown -R mysql:mysql log run

640.png


2、配置my.cnf配置文件


vi /etc/my.cnf
[mysqld]
datadir=/data/mysql/data/
socket=/data/mysql/mysql.sock
[mysqld_safe]
log-error=/data/mysql/log/mysql.log
pid-file=/data/mysql/run/mysql.pid


3、启动MySQL服务


cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start


4、环境变量配置


vi /etc/profile
export PATH=/data/mysql/bin:$PATH
source /etc/profile


5、登录MySQL,并修改root用户密码以及新建mysql用户


ln -s /data/mysql/mysql.sock /tmp/mysql.sock
mysql -uroot -p
SET PASSWORD = PASSWORD('MySQL@2019');
UPDATE mysql.user SET authentication_string =PASSWORD('MySQL@2019') WHERE User='mysql';
GRANT ALL PRIVILEGES ON *.* TO mysql@localhost IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO mysql@"%" IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'MySQL@2019' WITH GRANT OPTION;

640.png


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
9月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
2282 4
MySQL源码编译安装
|
10月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2525 16
|
11月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
802 10
|
11月前
|
NoSQL 关系型数据库 MySQL
在Visual Studio Code中设置MySQL源码调试环境
以上步骤涵盖了在VS Code中设置MySQL源码调试环境的主要过程,是一个相对高级的任务,旨在为希望建立强大开发和调试环境的开发者提供指引。遵循这些步骤,将可以利用VS Code强大的编辑和调试功能来深入理解和改进MySQL数据库的底层实现。
714 0
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3423 26
|
存储 机器学习/深度学习 数据库
阿里云服务器X86/ARM/GPU/裸金属/超算五大架构技术特点、场景适配参考
在云计算技术飞速发展的当下,云计算已经渗透到各个行业,成为企业数字化转型的关键驱动力。选择合适的云服务器架构对于提升业务效率、降低成本至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供大家了解和选择参考。
1661 61
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
1225 10
|
存储 机器学习/深度学习 算法
阿里云X86/ARM/GPU/裸金属/超算等五大服务器架构技术特点、场景适配与选型策略
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别。本文将深入解析这些架构的特点、优势及适用场景,帮助用户更好地根据实际需求做出选择。
|
弹性计算 编解码 运维
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
飞天技术沙龙回顾:业务创新新选择,倚天 Arm 架构深入探讨
482 1