Navicat 远程连接数据库 ERROR 1698 : Access denied for user ‘root‘@‘localhost‘ 问题解决

查看是否有远程ip登陆授权

use mysql;
select user,host from user;

在这里插入图片描述
这里我把host设置成了’%'来匹配任意ip,如果此时为localhost或者其他ip,则说明限制了ip登录,没有远程ip登陆授权。
通过命令

UPDATE user SET host = '%' WHERE user = 'root' AND host = 'localhost';
GRANT ALL PRIVILEGES ON *.* TO'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;

来进行设置,使其拥有通过远程ip登录的权限。

查看plugin设置

参考链接: https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost.
在ubuntu里,mysql会设置root的plugin为auth_socket,表明它会被当前系统用户证书(system user credentials)所加密验证,显然使用远程ip连接数据库是无法通过这个验证的。
于是可以通过查看其他普通用户的plugin设置(不同版本的mysql plugin设置可能不同),并将root的plugin更改为与其一致即可。
即使用命令(当前版本mysql-8 不同用户plugin为caching_sha2_password)

USE mysql;
UPDATE user SET plugin='caching_sha2_password' WHERE user ='root';
flush privileges;
exit;
sudo service mysql restart;

随后即可成功连接远程数据库
在这里插入图片描述
当然,这种方式显然不是安全的,对于我这样的懒人是足够了,比较推荐的方式可以查看一下参考连接QAQ。

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值