CentOS7安装MySQL 8.0安装

Centos安装mysql

1.配置MySQL 8.0的安装源:

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

配置

2.安装MySQL 8.0

sudo yum --enablerepo=mysql80-community install mysql-community-server

安装

3.启动MySQL服务

启动命令:sudo service mysqld start

ps:如果不确定是否启动了服务就运行如下命令

service mysqld status

4.查看MySQL的root临时密码

安装完MySQL之后,都会生成一个临时的密码让root用户登录,那么应该怎么获取临时密码呢?运行如下命令:

grep “A temporary password” /var/log/mysqld.log

5.把临时密码修改为一个自己能记得住的密码

1).先用临时的密码登录MySQL运行命令:

mysql -uroot -p

2).登录成成功后运行如下命令修改密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’;

ps:注意语句结尾必须以分号结束

如果出现这种情况,那么就是你的密码复杂度不符合MySQL所要求的

解决这种情况有两种方式:

①把密码改复杂点,让它符合密码验证策略,这个当然是最好的,符合国际惯例;

②把密码验证策略改简单点,让它适用简单的密码,这个符合懒人的做法。

查看密码验证策略方法,运行如下命令:(前提是重置密码之前是不让看的)

SHOW VARIABLES LIKE ‘validate_password.%’;

官方文档提供的文档

validate_password.length 是密码的最小长度,默认是8

validate_password.policy 验证密码的复杂程度

validate_password.check_user_name 用户名检查,用户名和密码不能相同

密码长度修改为4: set global validate_password.length=4;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ht5oJ9aK-1604539292371)()]

密码复杂度修改为0: set global validate_password.policy=0;

去掉不允许用户名和密码相同的要求: set global validate_password.check_user_name=off;

然后运行修改密码的命令: ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root’;

6.配置远程访问

发现客户端无法连接MySQL,那时因为我们没有开通远程访问权限

开启远程访问权限步骤:

1). use mysql;

2). select host, user, authentication_string, plugin from user;

查询发现root的host是localhost,不是%, 那我们就加个host是%的root账号:

CREATE USER ‘root’@’%’ IDENTIFIED BY ‘root’;

再重新查一下用户

select host, user, authentication_string, plugin from user;

上面步骤成功后运行如下代码:

GRANT ALL ON . TO ‘root’@’%’;

这样就成功了

如果还不成功,可能Linux没有开放3306端口

操作步骤:

1、登陆到linux系统

2、输入防火墙开放端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent

3、刷新防火墙:firewall-cmd --reload

* 注意:–add-port=后面接需要开放的端口

关闭防火墙

systemctl stop firewalld.service systemctl disable firewalld.service