因为贪图便宜,也因为开始选服务器时不懂,没注意,新买的linux服务器选了个arm架构的cpu然后系统也自然而然只能选唯一的arm架构的centos7.9 。因为这个失误,让我在arm架构的linux上安装mysql尝尽了苦头。

先总结记录如下:

1、下载mysql tar.gz 安装包

安装包下载链接:MySQL Community Downloads , centos7的只能选择redhed系统下的安装包。而且我的阿里云系统是arm版本的,还智能选择arm系列安装包。




arm安装mysql arm版mysql_arm安装mysql


arm安装mysql arm版mysql_arm安装mysql_02


将下载的文件上传到linux中的一个目录,我这里是上传到了mnt目录,因为我的mnt目录是挂载了数据盘的, 我想要尽量保持系统盘不被安装的软件占用太多空间。安装的时候我也会解压到这个目录去安装。


arm安装mysql arm版mysql_运维_03


2、检测环境

CentOS是自带mariadb, 和mysql的安装相冲突 , 所以需要提前删除

rpm -qa | grep mariadb //查找

yum remove mariadb-libs-5.5.68-1.el7.aarch64

rpm -qa | grep mariadb //再次查找,验证是否删除


arm安装mysql arm版mysql_linux_04


3、解压mysql文件

在mnt创建一个目录,然后将mysql压缩包解压到这个目录。如果用命令创建目录可能还涉及到赋权,我这里直接用sftp手工创建的,默认就是755权限。

mkdir /mnt/mysqlarm5.7.4

cd mnt

tar -xvf mysql-8.0.31-1.el7.aarch64.rpm-bundle.tar -C mysqlarm5.7.4


arm安装mysql arm版mysql_mysql_05


4、安装

cd mysqlarm5.7.4

由于rpm方式下载对依赖关系有所要求, 所以下载时要严格根据以下顺序安装

rpm -ivh mysql-community-common-8.0.31-1.el7.aarch64.rpm

rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.aarch64.rpm

rpm -ivh mysql-community-libs-8.0.31-1.el7.aarch64.rpm

rpm -ivh mysql-community-client-8.0.31-1.el7.aarch64.rpm

rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.aarch64.rpm

rpm -ivh mysql-community-server-8.0.31-1.el7.aarch64.rpm


arm安装mysql arm版mysql_mysql_06


最后一个安装出现了libaio.so.1()(64bit) 被 mysql-community-server-8.0.31-1.el7.aarch64 需要

执行yum install libaio


arm安装mysql arm版mysql_mysql_07


然后再次执行rpm -ivh mysql-community-server-8.0.31-1.el7.aarch64.rpm


arm安装mysql arm版mysql_arm安装mysql_08


5、初始化和配置mysql

初始化:mysqld --initialize --user=mysql

启动mysql:service mysqld start

查看初始密码:tail -20 /var/log/mysqld.log


arm安装mysql arm版mysql_linux_09


下面红色框的是密码 ,复制密码出来先放到一个文本框比如我的密码是 if5<ukFtRaiL

登录mysql(密码中有特殊字符的,用转义字符表示)

mysql -uroot -p


arm安装mysql arm版mysql_服务器_10


修改密码

alter user 'root'@'localhost' identified by '密码';


arm安装mysql arm版mysql_linux_11


6、测试远程登录

先确保您的服务器所在安全组打开了3306端口,打开方法自行百度。

然后用mysql工具测试远程登录


arm安装mysql arm版mysql_linux_12


转到mysql 库

use mysql;

查询当前用户可登录的客户端情况:从mysql 库的user表查询

select user,password from user;

我的提示没有passowrd列 , 因为mysql8.0以上没有这个列。

所以我 select user,authentication_string,host from user;


arm安装mysql arm版mysql_linux_13


执行脚本更新root的host字段,记得第二行也要执行,否则不能刷新。

update user set host = '%' where user ='root';

flush privileges;


arm安装mysql arm版mysql_mysql_14


arm安装mysql arm版mysql_arm安装mysql_15


7、修改mysql所在数据库文件的目录位置

因为我系统盘不大,不想数据库文件存放在系统盘,所以需要改数据库目录。先创建目录

mkdir /mnt/mysql8data

我又偷懒用了sftp手工创建的。

在更改MySQL的数据目录前,必须关闭MySQL服务。

service mysql status

service mysql stop

mysqladmin -u root -p shutdown #停止进程需要输入密码

进入etc目录,查看mysql的cnf配置文件,我的是etc/my.cnf

用命令vim my.cnf 查看编辑,

也可以用sftp工具直接下载下来修改再上传,我用了后者,简单明了。


arm安装mysql arm版mysql_linux_16


数据目录在 /var/lib/mysql ,拷贝到 /mnt/mysql8data 。

执行cp命令 cp -a /var/lib/mysql /mnt/mysql8data

修改my.cnf 配置,然后my.cnf文件上传到etc。

#datadir=/var/lib/mysql

#socket=/var/lib/mysql/mysql.sock

datadir=/mnt/mysql8data/mysql

socket=/mnt/mysql8data/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

[client]

default-character-set=utf8

socket=/mnt/mysql8data/mysql/mysql.sock

[mysql]

default-character-set=utf8

socket=/mnt/mysql8data/mysql/mysql.sock


arm安装mysql arm版mysql_服务器_17


重新启动MySQL服务

systemctl start mysqld.service

验证数据目录是否修改成功

mysql -hlocalhost -uroot -p

输入密码

show variables like '%datadir%';


arm安装mysql arm版mysql_运维_18


测试远程连接,我使用的是Navicat工具


arm安装mysql arm版mysql_服务器_19