提示:本文使用的硬件环境:MacBook Pro 16 2021 M1 Pro 16G
项目场景:
目前网络上大部分MySQL教程均为x86_64系统的CentOS,本文主要讲解在CentOS Stream 9 ARM64 (aarch64) 安装MySQL的过程、遇到的问题以及解决方案。
文章目录
1. 卸载CentOS9 自带的mariadb
需要卸载CentOS9 中自带的mariadb数据库,如果没有该数据库则可以跳过本步骤,建议在安装CentOS时选用最小安装模式,可以避免安装过多不需要的软件服务。
输入以下命令:
[root@master ~]# rpm -qa | grep mariadb
结果:mariadb-libs-5.5.56-2.el7.aarch64
(ps:该结果只为样例,请依据自己返回的结果为准,若无返回则表示系统未安装mariadb数据库)
[root@master ~]# rpm -e mariadb-libs-5.5.56-2.el7.aarch64 --nodeps
(卸载mariadb数据库)
[root@master etc]# rpm -qa | grep mariadb
(再次输入检查是否已经卸载完成)
2. 下载MySQL ARM相关的 yum repository
下载MySQL支持ARM环境的安装环境库文件,进入官网进行下载。
根据自身系统选择合适的RPM包,本次的系统时CentOS9,因此选择第一个RPM包进行下载。
3. 安装yum repository 的 RPM包
将下载好的RPM包上传至系统任意文件夹内。
运行如下代码:
[root@master ~]# yum -y install mysql80-community-release-el9-3.noarch.rpm
安装完成后进入以下的目录
[root@master ~]# cd /etc/yum.repos.d/
[root@master ~]# ll
总用量 40
-rw-r--r--. 1 root root 4245 4月 6 21:26 centos-addons.repo
-rw-r--r--. 1 root root 2600 4月 6 21:26 centos.repo
-rw-r--r--. 1 root root 1519 12月 2 2021 epel-next.repo
-rw-r--r--. 1 root root 1621 12月 2 2021 epel-next-testing.repo
-rw-r--r--. 1 root root 1453 12月 2 2021 epel.repo
-rw-r--r--. 1 root root 1552 12月 2 2021 epel-testing.repo
-rw-r--r--. 1 root root 1751 7月 26 01:01 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 1478 7月 26 01:01 mysql-community.repo
-rw-r--r--. 1 root root 1611 7月 26 01:01 mysql-community-source.repo
可以看到里面多了三个源:mysql-community-debuginfo.repo、mysql-community.repo和mysql-community-source.repo,现在就可以安装mysql了。
4. 安装MySQL
现在开始安装MySQL,使用以下命令。
[root@master ~]# yum -y install mysql-community-server
安装完成后,启动MySQL
[root@master ~]# systemctl start mysqld.service
查询MySQL服务状态
[root@master ~]# systemctl status mysqld.service
查看初始密码
root@master ~]# cat /var/log/mysqld.log
定位到A temporary password is generated for root@localhost:
冒号后面的就为初始化密码
进入MySQL
root@master ~]# mysql –u root –p
提示输入密码后,enter进入MySQL
5.修改初始化密码并配置远程访问
修改初始密码
mysql>alter user 'root'@'localhost' identified with mysql_native_password by '你的密码';
目前MySQL8 等密码等级要求更高,因此需要设置的密码包含大小写字母数字和特殊符号,否则不予以通过。
远程访问的授权
mysql>use mysql';
(使用MySQL数据库)
mysql>update user set host = '%' where user = 'root'
(将host修改为所有ip都可以访问)
mysql> flush privileges;
(刷新所有权限)
6.降低密码等级限制,设置简单密码
保持MySQL登录状态,输入如下命令
mysql> SHOW VARIABLES LIKE ‘validate_password%’
修改变量
set global validate_password.policy=0;
set global validate_password.length=4;
退出后执行
set global validate_password.length=4;