安装MySQL 8.0
配置MySQL 8.0安装源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
运行结果如下:
安装MySQL 8.0
sudo yum --enablerepo=mysql80-community install mysql-community-server
运行结果如下:
选择y,继续运行
运行结果如下:
出现Complete!完成安装
启动MySQL服务
sudo service mysqld start
查看启动状态
service mysqld status
正确启动的情况如下:
查看MySQL的root的临时密码
安装完成MySQL之后,会生成一个临时密码用于root用户的登录,获取临时密码的命令如下:
grep "A temporary password" /var/log/mysqld.log
红色框内即为root用户的临时密码
修改root用户的密码
1、先用临时密码登录MySQL
mysql -u root -p
在出现Enter password后输入临时密码
2、登录成功后修改root用户的密码
alter user'root'@'localhost'identified by'输入你的密码';
identified by指定用户的登录密码,该项可以省略。
注意:语句必须以分号结束!
出现以上报错情况,则说明你的密码不符合MySQL的规定。解决情况有以下两种:
①将密码修改成符合MySQL的规定样式。
②修改密码验证策略,让它能够适用自己设定的密码。
查看密码验证策略的方法:
运行命令:
show variables like 'validate_password.%';
validate_password.length是密码的最小长度;
validate_password.policy是验证密码的复杂程度;
validate_password.check_user_name是检查用户名与密码是够相同。
修改密码长度为6:
set global validate_password.length=6;
修改密码复杂度为0:
set global validate_password.policy=0;
去掉不允许用户名和密码相同:
set global validate_password.check_user_name=off;
修改完成:
然后运行修改密码的命令:
alter user'root'@'localhost'identified by'输入你的密码';
配置远程访问
开启远程访问权限步骤(注意:每一条语句都以 ; 号结束):
1、use mysql;
2、select host,user,authentication_string,plugin from user;
经过查询就会发现,root的host是hostname,因此需要加一个host是%的root账号。%的意思是允许在任何地方登录。
3、create user 'root'@'%' identified by '输入你的密码';
4、此时执行上述中第2步的语句,可以看到结果如下:
5、运行完上述步骤后,运行如下代码:
GRANT ALL ON *.* TO 'root'@'%';
前面的*号用来指定数据库名,后面的*号用来指定表名。
运行到这里,就成功了大半。但此时用navicat连接还是会报错
原因是MySQL8.0的加密方式不一样,是caching_sha2_password,则运行如下命令修改:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '输入你的密码';
如果还是不能成功,则有可能没有开放3306端口。
操作步骤如下:
1、输入防火墙开放端口命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、刷新防火墙
firewall-cmd --reload
3、查询端口状态
netstat -nat|grep 3306