使用Navicat远程连接MySQL8.0+版本

最近忙里偷闲,总结一下MySQL8.0+ 版本的一些使用方法,这次主要讲:navicat连接mysql8.0+版本。

Mysql8.0+版本数据库用户加密方式

首先,MySQL8.0+版本默认的身份验证插件改为了caching_sha2_password,之前的版本是mysql_native_password。可以在mysql表中进行验证:

select user,host,plugin from user;

查询结果

注: 最后一行笔者手动进行了更改。

远程连接

为了更有条理,我这把远程连接过程分成两步。

第一步

由于目前navicat不支持caching_sha2_password插件,所以第一步先将加密方式改为mysql_native_password:

可以这样改:

update user set plugin = 'mysql_native_password' where user = 'root';

也可以这样改:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

这种改法的好处是可以直接将密码也一并改了。

改了加密插件后 就可以用navicat 连接本地的MySQL数据库了, 常见的报错如 下图:
插件未改报错
就是因为没有修改插件导致的。如果只需要本地连接MySQL,那到这里就🆗了。

第二步

第一步改了插件,实现了本地连接。第二步需要做的是开放权限。
具体做法 还是操作mysql的user表。

update user set host = '%' where user = 'root';

这样操作的效果是将root身份访问权限完全开放,允许任何ip访问。当然还可以将root用户仅开放给特定的ip,这样则只允许该ip访问 , 具体操作如下:

create user root@127.0.0.1 identified by 'root';
grant all on *.* to root@127.0.0.1 with grant option;

这样就可以只允许127.0.0.1这一个ip使用root登录名root密码去登录远程mysql啦。当然这里的第二行sql是将所有权限都给了出去,也可以只给部分的权限,毕竟不常用,用的时候再查吧,(咋也不是dba啊🤣)

这里再多提一点,可以创建带过期时间的用户,只需要create语句后面稍作修改即可(以下示例创建过期时间为90天的用户):

create user root@127.0.0.1 identified by 'root' password expire interval 90 day;

以上两步做完了,还需要最后刷新一下:

flush privileges;

以上,mysql部分的配置就算完成了,可以试着使用navicat连接一下刚配置好的mysql服务器。如果还是访问不了,则还需要检查mysql所在服务器防火墙是否开放了3306端口的访问权限。至于防火墙的配置,可自行百度,也很简单😏。

相关文章

下面是一些个人觉得有用的博文,供参考:

  1. https://www.cnblogs.com/chenjiye/p/10333258.html
  2. https://blog.csdn.net/qq_36777191/article/details/112548586
  3. https://blog.51cto.com/wangwei007/2139823
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值