CentOS7系统上安装MySQL8.0(rpm-bundle.tar)详细过程
一、MySQL官网下载安装包
1.进入官网
https://dev.mysql.com/downloads/mysql/
2.查看自己的版本和架构
uname -m
cat /etc/redhat-release
3.选择对应版本并下载
4.查看linux自带的mariadb数据库,有就卸载掉。
rpm -qa | grep mariadb
rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps
5.新建一个mysql目录,并将下载好的文件上传到这个目录(这里使用的是MobaXterm)
cd /usr/local/
mkdir mysql
cd /usr/local/mysql/
二、安装MySQL
1.解压安装包
tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar
2.按顺序安装RPM
这里注意一定要按指定顺序安装 common -> libs -> libs-compat -> client -> server
- 安装 common
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
- 安装 libs
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm --nodeps --force
- 安装 libs-compat
rpm -ivh mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm --nodeps --force
- 安装 client
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
- 安装 server
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
3.查看mysql的安装包
rpm -qa | grep mysql
4.查看mysqld服务当前状态
systemctl status mysqld
5.启用mysqld服务并再次查看其状态
systemctl start mysqld
systemctl status mysqld
6.查看mysql的初始密码
cat /var/log/mysqld.log | grep password
7.修改密码
这里注意mysql8.0以上密码必须符合这些规定:
*密码必须至少有 8 个字符
*密码必须包含大小写字母、数字和特殊字符
*密码不能与用户的用户名相同
这里要先修改一个符合策略的密码后面再更改密码策略。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_password123';
FLUSH PRIVILEGES;
刷新权限确保密码生效。
先使用这条语句去除原密码策略
SET GLOBAL validate_password.policy=LOW;
再使用这三条语句来修改密码策略
SET GLOBAL validate_password.length=6;
SET GLOBAL validate_password.number_count=0;
SET GLOBAL validate_password.special_char_count=0;
这其中validate_password.length 控制密码的最小长度,validate_password.number_count 控制密码中数字的最小数量,validate_password.special_char_count 控制密码中特殊字符的最小数量。
刷新权限使修改的策略生效FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
修改自己的密码。
退出后验证下,没有问题。
三、防火墙设置
1.启用防火墙
systemctl status firewalld
查看防火墙是否开启,如果未开启使用这两条命令开启:
systemctl enable firewalld
systemctl start firewalld
2.添加mysql端口
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
验证下端口,返回yes 证明是打开的。
firewall-cmd --query-port=3306/tcp