CentOS7安装MySQL8——萌新超详细教程
1.配置MySQL 8.0的安装源:
sudo rpm -Uvh
2.安装MySQL 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
接下来选择 y
下载完继续 y
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所要求的
解决这种情况有两种⽅式:
①把密码改复杂点,让它符合密码验证策略,这个当然是最好的,符合国际惯例;
②把密码验证策略改简单点,让它适⽤简单的密码,这个符合懒⼈的做法。
查看密码验证策略⽅法,运⾏如下命令:(前提是重置密码之前是不让看的)
mysql下载后怎么安装不了SHOW VARIABLES LIKE 'validate_password.%';
官⽅⽂档提供的⽂档
是密码的最⼩长度,默认是8
验证密码的复杂程度
⽤户名检查,⽤户名和密码不能相同
密码长度修改为4:set global validate_password.length=4;
密码复杂度修改为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'@'%';
这样就成功了
⽤navicat连接mysql还是会报错:
原因是mysql8的加密⽅式规则不⼀样,是caching_sha2_password
把加密⽅式改成mysql_native_password就⾏了:
ALTER USER '[⽤户名]'@'%' IDENTIFIED WITH mysql_native_password BY '[密码]'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
加密⽅式已经修改完成 mysql_native_password:
如果还不成功,可能Linux没有开放3306端⼝
操作步骤:
1、登陆到linux系统
2、输⼊防⽕墙开放端⼝命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
3、刷新防⽕墙:firewall-cmd --reload
* 注意:--add-port=后⾯接需要开放的端⼝

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。