MySQL8.0正式版8.0.11已发布,官方表示MySQL8要比MySQL5.7块两倍,同事还带来了大量的改进和更快的性能!
从MySQL5.7升级到MySQL8.0仅支持通过使用in-place方式进行升级,并且不支持从MySQL8.0降级到MySQL5.7(或从某个MySQL版本降级到任意一个更早的MySQL8.0的版本)。唯一受支持的替代方案是在升级之前对数据进行备份。
但是在使用Navicat连接MySQL8.0的时候经常会遇到一个问题:
client does not support authentication protocol requested by server; consider upgrading MySQL client |
既然客户端工具还不支持这种加密认证方式,那我们可以通过修改加密方式来达到连接数据库的效果。
因为一般MySQL在安装的时候(windows)都会让用户设置root账户的密码。那么我们要做的第一步就是将root账户的密码设置为空,让我们可以直接一下命令登录。
mysql -u root -p |
第一步:清空root用户的密码
1、停止mysql服务,window下可以直接在服务中停止,linux系统中需要使用如下命令(具体按用户自己安装的mysql目录为准):
/etc/init.d/mysqld stop |
2、跳过密码验证(mysqld_safe在mysql安装目录的bin目录下):
mysqld_safe –skip-grant-tables |
3、另起一个控制台,将MySQL的root用户密码置为空:
mysql
use mysql;
update user set authentication_string=” where user=’root’;
|
4、退出后,重启MySQL数据库(将mysqld_safe –skip-grant-tables命令窗口关闭):
第二步:修改MySQL8.0密码加密方式
1、使用控制台登录MySQL(因为之前没设置密码,所以密码为空,不用输入密码,直接回车即可):
bin>mysql -u root -p
Enter password:
|
2、查询用户密码:
mysql> select host,user,authentication_string from mysql.user;
|
host: 允许用户登录的ip‘位置’%表示可以远程;
user:当前数据库的用户名;
authentication_string: 用户密码(后面有提到此字段);
3、更改mysql加密方式:
mysql>ALTER USER ‘root’@’%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER;
mysql>ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘pwd12345’;
mysql>FLUSH PRIVILEGES;
|