赞
踩
遇到一个项目是华为鲲鹏arm架构linux服务器(CentOS 7.5 with ARM),刚开始一直按照X86的教程在执行,后来mysql的本地编译命令出现了二进制的错误,于是想到了这个是鲲鹏arm架构的服务器,所以在网上看了很多博客,找到如下方法。情况区分为有互联网的情况和没有互联网的情况。
- yum install cmake time libaio-devel ncurses-devel numactl-devel openssl-devel
- zlib-devel cyrus-sasl-devel openldap-devel perl-Env gcc gcc-c++ make rpm-build autoconf perl-JSON
- wget https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/database/mysql-community-5.7.28-1.el7.src.rpm
-
- rpm -ivh mysql-community-5.7.28-1.el7.src.rpm
安装后的源码在/root/rpmbuild/SOURCES/里面。
我们将使用系统自带的GCC4.8.5来编译MySQL5.7.28,为此我们需要做一些修改
- cd /root/rpmbuild/SOURCES
- vim mysql-5.7.28/sql/mysqld.cc
- #添加 #include <sys/prctl.h>
vim mysql-5.7.28/cmake/build-configurations/compiler_options.cmake
将所有的-O3改成-O1。上述修改不会对MySQL功能造成影响,主要是GCC的版本问题。
修改完之后重新打包,编译。
- tar -zcf mysql-5.7.28.tar.gz mysql-5.7.28
-
- rpmbuild -bb /root/rpmbuild/SPECS/mysql.spec
编译完成后,编译好的RPM包在/root/rpmbuild/RPMS/aarch64下
- #启动数据库
- systemctl start mysqld
- #查看数据库状态
- systemctl status mysqld
数据库初始密码在/var/log/mysqld.log里可以查到
数据库配置文件在/etc/my.cnf里可以查到
- mysql -uroot –p
- #修改密码和远程登录
- mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa!123456';
- mysql> use mysql;
- mysql> update user set host = '%' where user = 'root';
- mysql> FLUSH PRIVILEGES;
首先从网上下了一个centos的arm版本,然后挂载在系统上,这样服务器就可以使用挂载系统的本地yum源,这个具体方式可以百度linux制作本地yum源,主要就是下载一个arm版本的centos。
然后就开始下载依赖,注意下载依赖 要分开写,比如: yum install -y cmake ,要一个一个编译,如果直接复制进去 无法下载成功。而且我下载的时候,其中有一个个依赖没有下载成功(好像是这个ncurses-devel),不过不重要,应该是可以忽略的。
- yum install cmake time libaio-devel ncurses-devel numactl-devel openssl-devel
- zlib-devel cyrus-sasl-devel openldap-devel perl-Env gcc gcc-c++ make rpm-build autoconf perl-JSON
然后下载rpm版本(注意是:rpm不是arm)的mysql文件(这个就是arm可执行的mysql文件)
https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/database/mysql.5.7.28-rpm.tar
把上面这个下载好的文件上传到linux服务器,然后cd进入文件夹
- #安装数据库
- rpm -ivh *.rpm
- #启动数据库
- systemctl start mysqld
- #查看数据库状态
- systemctl status mysqld
数据库初始密码在/var/log/mysqld.log里可以查到
数据库配置文件在/etc/my.cnf里可以查到
- mysql -uroot –p
- #修改密码和远程登录
- mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa!123456';
- mysql> use mysql;
- mysql> update user set host = '%' where user = 'root';
- mysql> FLUSH PRIVILEGES;
==================================================
启动成功之后后续可以使用rpm的mysql 启动命令
- (rpm)重启:service mysqld restart
- (rpm)停止:service mysqld stop
问题:
这是因为mariadb-libs和mysql的lib冲突引起的,执行yum -y remove mariadb-libs可解决问题。
博客参考:https://bbs.huaweicloud.com/forum/thread-56570-1-1.htm
后续要安装 redis nginx zookeeper tomcat等都没啥问题,但是特别要注意redis和gcc的版本号要保持一致
先找有没有对应的arm的软件,然后在找找gcc或者jdk版本等底层环境版本号是否兼容相关软件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。