mysql创建新库以及解决版本过高8.0以上导致navicat无法连接的问题
昨天运营大佬给了一个云上的服务器 mysql已经装上去了 用来给我做测试使用
软件环境是: CentOS 7.4 + Mysql 8.0.20
于是我准备创建几个数据库 分别创建不用的用户登录访问 最后使用navicat连接
步骤以及命令如下:
打开我的正版付费xshell 新建了一个云上服务器的会话
登录进入服务器后再进入mysql命令行 命令如下:
mysql -uroot -padmin; //-u和-p后面不用空格直接拼账号密码
select version(); //查询数据库的版本号
show databases; //查询已有的数据库
create database xxxx ; //创建一个名字叫xxxx的数据库
show databases; //再查询一下是否创建成功
CREATE USER 'user01'@'%' IDENTIFIED BY '123456'; //创建用户user01 密码是123456 %通配表示任何IP都可以连接这个数据库
GRANT ALL ON xxxx .* TO 'user01'@'%' //给xxxx数据库 用户访问授权 %通配表示任何IP都可以连接这个数据库
到这里都是非常顺利 然后navicat链接到云上数据库的时候 报错了 报错信息如下:
Client does not support authentication protocol requested by server; consider upgrading MySQL client
查了下 是mysql 8.0以上版本的加密规则是caching_sha2_password
mysql8 之前的版本中加密规则是mysql_native_password
所以需要修改这个加密规则 命令如下
ALTER USER 'user01'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; // 这里的password是你正在使用的密码
ALTER USER 'user01'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; // 修改加密方法 更新一下用户的密码这里的password为你修改的新密码。
FLUSH PRIVILEGES; // 刷新权限,使自己的修改生效。