为了保证安装顺利,首先关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
查看是否有安装过MySQL
rpm -qa | grep -i mysql
如果安装过,那么先删除MySQL
yum -y remove MySQL-*
安装MySQL
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum --enablerepo=mysql80-community install mysql-community-server
启动MySQL服务
sudo service mysqld start
查看mysql服务状态
service mysqld status
在安装完成后,MySQL会生成一个临时密码,用来初次登录,该密码保存在 /var/log/mysqld.log文件中
查看临时密码
grep "A temporary password" /var/log/mysqld.log
效果如下:
[root@localhost ~]# grep "A temporary password" /var/log/mysqld.log
2021-05-17T15:22:12.258210Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: )%+MWpd<o9K+
比如我这里,上面的 " )%+MWpd<o9K+ " 这段内容,就是临时密码了。
通过上方的临时密码,登录mysql,
mysql -uroot -p
登录后第一件事,MySQL要求首先要修改一下密码,不然无法进行后续的操作
修改登录密码
根据MySQL8以后密码默认策略,要求密码必须包含大小写字母和符号,我这里将密码修改为: “Password0.0”
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password0.0';
修改完密码后,就可以进行后续的操作了。
由于我感觉MySQL8默认的密码策略太麻烦,所以这里先修改一下密码策略。修改为长度6位,不必包含大小写字母。
修改mysql密码策略
SHOW VARIABLES LIKE 'validate_password.%';
set global validate_password.length=6;
set global validate_password.policy=0;
set global validate_password.check_user_name=off;
再执行修改密码的命令,修改为123456
再次修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
由于MySQL默认登录策略的限制,在安装完成后,无法从远程访问mysql服务,所以这里需要配置一下远程访问。
配置远程访问:
use mysql;
CREATE USER 'root'@'%' IDENTIFIED BY 'KC$abc123';
配置完成后,执行以下语句,如果发现多了一个host为%的root用户,说明配置成功。
select host, user, authentication_string, plugin from user;
为root用户设置权限
GRANT ALL PRIVILEGES ON*.* TO 'root'@'%';
修改访问时的密码加密规则
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
以上配置完成后,就可以在外部使用navicat等客户端连接MySQL服务了。
安装后的mysql配置文件在 /etc/my.cnf