arm 架构 CentOS 7 安装 MySQL 5.7 版本

原文出处:https://lxnchan.cn/centos7-mysql56.html
防删备份

arm 架构的 CentOS 7 没有官方编译的 MySQL 5.7 ,本文将使用华为云的预编译二进制文件在 arm 架构的 CentOS 7 上安装 MySQL 5.7 版本。

环境介绍
CentOS 7 aarch64(arm64)

[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

下载必要组件
mysql-5.7.27-aarch64.tar
其他依赖,提取码: tje5
安装依赖
检查系统中是否存在mariadb和mysql其他版本

rpm -qa | grep mariadb

如果返回不为空,则需要卸载掉mariadb

[root@dc3-80-080 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.aarch64

卸载:

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.aarch64

最后再执行以下第一条验证一下即可。
创建用户和用户组
首先检查是否已存在mysql用户和组

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

如果没有则需要创建:

groupadd mysql
useradd -g mysql mysql

安装离线依赖
将刚才下载的离线依赖包解压到任意位置,然后执行如下命令进行安装

rpm -Uvh *.rpm --nodeps --force

导入so库
将刚才下载的libstdc++.so.6.0.21直接复制到/lib64/,然后创建一个软链接

ln -snf /lib64/libstdc++.so.6.0.21 /lib64/libstdc++.so.6

安装MySQL
解压mysql-5.7.27-aarch64.tar

tar -xvf mysql-5.7.27-aarch64.tar -C /usr/local/

给文件夹授权

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

创建必要文件夹和文件

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,然后执行如下命令:

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.27-aarch64/ --datadir=/usr/local/mysql-5.7.27-aarch64/data/

执行后会返回一行:

[Note] A temporary password is generated for root@localhost: ;>khFlf+t64N

最后面的;>khFlf+t64N是随机生成的root密码,每次安装都不一样,千万记下来。第一次进入时修改密码需要这个。
复制启动脚本到init.d目录下并加运行权限

cp ./support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

给mysql配置文件赋权

chown 777 my.cnf

修改配置文件
将所有socket =行改为socket = /tmp/mysql.sock;
将所有/usr/local/mysql路径修改为实际路径/usr/local/mysql-5.7.27-aarch64,否则不能启动
添加环境变量,打开/etc/profile,添加如下行

# MySQL 5.7 Env
export PATH=$PATH:/usr/local/mysql-5.7.27-aarch64/bin

然后立即应用环境变量

source /etc/profile

创建Service并开机启动
创建文件/usr/lib/systemd/system/mysqld.service,并输入如下内容

[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

新建PID目录并赋权,否则可能无法启动:

mkdir -p /var/run/mysqld
chown -R mysql /var/run/mysqld/
chgrp -R mysql /var/run/mysqld/

启动 MySQL 服务:

systemctl enable --now mysqld

MySQL初次进入小设置
修改root密码
在该版本中,第一次进入MySQL不会要求强制修改密码,但是什么都做不了,于是第一次进去还是得修改密码。

SET PASSWORD = 'MyP@ssworc1'

开启远程访问
默认的话MySQL是不允许远程访问的,可通过如下方式开启远程访问:

use mysql;
grant all privileges on *.* to 'root'@'%' identified by 'MyP@ssworc1';
flush privileges;
posted @ 2025-12-01 18:57  水木青楓  阅读(1)  评论(0)    收藏  举报