配置编译环境
步骤一:检查cmake是否安装
检查是否安装。
rpm -qa |grep cmake
步骤二:安装依赖包
执行以下命令安装依赖包:
yum install bison* ncurses*
yum install -y bzip2 wget
步骤三:升级gcc版本至5.3或者以上
1. 检查gcc的版本。
gcc --version
(可选)安装gcc7.3。
本文档以7.3版本为例。
2. 当版本不满足要求时,需要安装gcc。
下载gcc7.3。
下载地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
1) 将“gcc-7.3.0.tar.gz”放置于“/home”目录下,并解压安装。
cd /home
tar -xvf gcc-7.3.0.tar.gz
3. 下载isl、gmp、mpc、mpfr。
1) 在“gcc-7.3.0”目录下,检查gcc的依赖包是否已下载和安装。
./contrib/download_prerequisites
2) (可选)根据需要,下载“gmp-6.1.0.tar.bz2”、“isl-0.16.1.tar.bz2”、“mpc-1.0.3.tar.gz”或“mpfr-3.1.4.tar.bz2”。
在步骤3.1中检查到存在上述依赖包未下载安装时,请根据需要执行相应的命令下载。
wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
3) 将安装包放置于“/home/gcc-7.3.0”目录下。
4. 编译安装gcc。
1) 编译gcc。
“-j”参数可利用多核CPU加快编译速度,在本示例中,使用的是16核CPU,所以此处为“-j16”。
可通过下述命令查询CPU核数:
cat /proc/cpuinfo| grep "processor"| wc -l
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 -j16
2) 执行安装。
make install
3) 确定“libstdc++.so”是在“/usr/lib64”目录下。
cd /usr/lib64
ll |grep libstdc++.so
查询结果如图1-2所示。
图1-2 查询“libstdc++.so”所在位置

4) 确定软连接存在,如图1-3所示。
ll |grep libstdc++.so.6.0.24
图1-3 确定软连接存在

5) 查看版本,如图1-4所示。
gcc -v
图1-4 查看gcc版本

----结束
3.3 编译安装MySQL
下载相应的源码包
实际我是从http://mirror.sohu.com/mysql/MySQL-5.7/ 下载的。。官网有点慢
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
wget https://github.com/mysql/mysql-server/archive/mysql-5.7.30.tar.gz
新建Mysql用户和用户组,保证mysql服务的独立性
groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql
预编译
tar -zxvf boost_1_59_0.tar.gz
tar -zxvf mysql-5.7.30.tar.gz
#需提前创建,否则后面会提示报错
mkdir -p /data/mysql
cd mysql-5.7.30
cmake编译,华为有一篇文章是建立一个sh文件进行,但是我用了不行
3. 在解压后的源码包路径“mysql-5.7.x”下,创建“cmake.sh”。
vim cmake.sh
文件内容如下,其中,“DWITH_BOOST”的取值请根据实际的boost路径修改。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/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=/mysql/mysql-5.7.28/boost/boost_1_59_0
4. 给“cmake.sh”赋以权限并运行,等待运行完成。
chmod +x cmake.sh
./cmake.sh
所以再参考另外一篇文章,直接是命令行执行
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-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/mysql-5.7.30/boost/boost_1_59_0
出现错误
Cannot find appropriate system libraries for WITH_SSL=system
安装一下即可
yum install –y openssl openssl-devel ncurses ncurses-devel
编译安装
make -j `grep processor /proc/cpuinfo | wc -l`
出现错误
linux prctl’ was not declared in this scope
百度中还是找到了华为的文章
执行命令将prctl.h文件复制到/home/mysql/mysql-5.7.30/include中。
#cp /usr/include/sys/prctl.h /home/mysql/mysql-5.7.30/include
编辑mysqld.cc文件,增加下图标注的内容。
vi /home/mysql/mysql-5.7.30/sql/mysqld.cc

重新执行命令安装。
make -j `grep processor /proc/cpuinfo | wc -l`
make install
编译到100%出错
[100%] Built target mysqld
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x10): undefined reference to `builtin_csv_plugin'
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x40): undefined reference to `builtin_archive_plugin'
collect2: error: ld returned 1 exit status
make[2]: *** [libmysqld/examples/mysql_client_test_embedded] Error 1
make[1]: *** [libmysqld/examples/CMakeFiles/mysql_client_test_embedded.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x10): undefined reference to `builtin_csv_plugin'
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x40): undefined reference to `builtin_archive_plugin'
collect2: error: ld returned 1 exit status
make[2]: *** [libmysqld/examples/mysqltest_embedded] Error 1
make[1]: *** [libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/all] Error 2
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x10): undefined reference to `builtin_csv_plugin'
../../archive_output_directory/libmysqld.a(sql_builtin.cc.o):(.data.rel+0x40): undefined reference to `builtin_archive_plugin'
collect2: error: ld returned 1 exit status
make[2]: *** [libmysqld/examples/mysql_embedded] Error 1
make[1]: *** [libmysqld/examples/CMakeFiles/mysql_embedded.dir/all] Error 2
make: *** [all] Error 2
好吧。发帖求助没办法
找到另外一个安装8.0的MYSQL尝试一下 。然后里面的17版本 要改为18 不然下载不到
1、卸载centos7自带的mariadb
#查询自带安装的mariadb
rpm -qa | grep mariadb
#如果存在则卸载
rpm -e 查询到的mariadb --nodeps
2、安装所需依赖wget和libaio
yum -y install wget libaio
3、下载相关RPM包
cd /root
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-common-8.0.18-1.el7.aarch64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-libs-8.0.18-1.el7.aarch64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-client-8.0.18-1.el7.aarch64.rpm
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-community-server-8.0.18-1.el7.aarch64.rpm
下载好之后,/root目录下存在下面这4个文件
4、安装相关rpm包
rpm -ivh mysql-community-common-8.0.18-1.el7.aarch64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.aarch64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.aarch64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.aarch64.rpm
注:这4个rpm包存在强烈的依赖关系,因此必须按照顺序依次安装rpm包common→libs→client→server
在Linux下安装rpm包时经常会遇到下面这个问题:
error: Failed dependencies:
xxxxxxxxxxxxxxxxxxxxxx
遇到此问题时可以在安装rpm包命令的后面加两个参数,如:
rpm -ivh jdk-1_5_0_07-linux-i586.rpm
改成:
rpm -ivh jdk-1_5_0_07-linux-i586.rpm --nodeps --force
加上那两个参数的意义就在于,
安装时不再分析包之间的依赖关系而直接安装,
也就不会再提示error: Failed dependencies:这样的错误了。
5、启动mysql
systemctl start mysqld.service
6、查看mysql状态
systemctl status mysqld.service
7、 查看初始密码
cat /var/log/mysqld.log
冒号后面就是密码

8、使用初始密码登录mysql
mysql –u root –p
9、修改初始密码
alter user 'root'@'localhost' identified by 'Xdw_123456';
注:密码有复杂度要求,采用大小写字母+特殊符号+数字组成。
10、使用新设置的密码重新登录即可。
mysql –u root –p
清除防火墙规则,不然即使关闭防火墙,也是无法访问80 3306等端口 提示no route to host
iptables -F
参考
https://www.jianshu.com/p/95a103add722
https://www.huaweicloud.com/kunpeng/software/mysql0.html
https://support.huaweicloud.com/prtg-kunpengdbs/kunpengmysql5727_02_0008.html
https://support.huaweicloud.com/prtg-kunpengdbs/kunpengmysql5727_02_0012.html
https://bbs.huaweicloud.com/forum/thread-21069-1-1.html