arm 架构的 CentOS 7 没有官方编译的 MySQL 5.7 ,本文将使用华为云的预编译二进制文件在 arm 架构的 CentOS 7 上安装 MySQL 5.7 版本。
环境介绍
CentOS 7 aarch64(arm64)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| [root@dc3-80-080 ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="7 (AltArch)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (AltArch)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7:server" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@dc3-80-080 ~]# uname -a Linux dc3-80-080.novalocal 4.18.0-348.20.1.el7.aarch64 #1 SMP Wed Apr 13 20:57:50 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
|
下载必要组件
安装依赖
- 检查系统中是否存在mariadb和mysql其他版本如果返回不为空,则需要卸载掉mariadb
1 2
| [root@dc3-80-080 ~]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.aarch64
|
卸载:1
| rpm -e --nodeps mariadb-libs-5.5.68-1.el7.aarch64
|
最后再执行以下第一条验证一下即可。 - 创建用户和用户组
首先检查是否已存在mysql用户和组1 2
| cat /etc/group | grep mysql cat /etc/passwd | grep mysql
|
如果没有则需要创建:1 2
| groupadd mysql useradd -g mysql mysql
|
- 安装离线依赖
将刚才下载的离线依赖包解压到任意位置,然后执行如下命令进行安装1
| rpm -Uvh *.rpm --nodeps --force
|
- 导入so库
将刚才下载的libstdc++.so.6.0.21
直接复制到/lib64/
,然后创建一个软链接1
| ln -snf /lib64/libstdc++.so.6.0.21 /lib64/libstdc++.so.6
|
安装MySQL
- 解压
mysql-5.7.27-aarch64.tar
1
| tar -xvf mysql-5.7.27-aarch64.tar -C /usr/local/
|
- 给文件夹授权
1 2 3 4 5 6
| cd /usr/local/ chown -R mysql mysql-5.7.27-aarch64/ chgrp -R mysql mysql-5.7.27-aarch64/ cd mysql-5.7.27-aarch64/ mkdir data chown -R mysql:mysql data
|
- 创建必要文件夹和文件
1 2 3
| mkdir /usr/local/mysql-5.7.27-aarch64/logs echo ' ' > /usr/local/mysql-5.7.27-aarch64/logs/mysql-error.log chown -R mysql:mysql /usr/local/mysql-5.7.27-aarch64/logs/mysql-error.log
|
- 初始化MySQL
首先进入/usr/local/mysql-5.7.27-aarch64
,然后执行如下命令:1
| bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.27-aarch64/ --datadir=/usr/local/mysql-5.7.27-aarch64/data/
|
执行后会返回一行:1
| [Note] A temporary password is generated for root@localhost: ;>khFlf+t64N
|
最后面的;>khFlf+t64N
是随机生成的root密码,每次安装都不一样,千万记下来。第一次进入时修改密码需要这个。 - 复制启动脚本到init.d目录下并加运行权限
1 2
| cp ./support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld
|
- 给mysql配置文件赋权
- 修改配置文件
- 将所有
socket =
行改为socket = /tmp/mysql.sock
; - 将所有
/usr/local/mysql
路径修改为实际路径/usr/local/mysql-5.7.27-aarch64
,否则不能启动
- 添加环境变量,打开
/etc/profile
,添加如下行1 2
| export PATH=$PATH:/usr/local/mysql-5.7.27-aarch64/bin
|
然后立即应用环境变量 - 创建Service并开机启动
创建文件/usr/lib/systemd/system/mysqld.service
,并输入如下内容1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| [Unit] Description=MySQL Server After=network.target After=syslog.target
[Install] WantedBy=multi-user.target
[Service] User=mysql Group=mysql Type=forking PIDFile=/var/run/mysqld/mysqld.pid TimeoutSec=0 PermissionsStartOnly=true ExecStart=/usr/local/mysql-5.7.27-aarch64/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false
|
启动服务:开机启动:
MySQL初次进入小设置
修改root密码
在该版本中,第一次进入MySQL不会要求强制修改密码,但是什么都做不了,于是第一次进去还是得修改密码。
1
| SET PASSWORD = 'MyP@ssworc1'
|
开启远程访问
默认的话MySQL是不允许远程访问的,可通过如下方式开启远程访问:
1 2 3
| use mysql; grant all privileges on *.* to 'root'@'%' identified by 'MyP@ssworc1'; flush privileges;
|