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

编程知识 更新时间:2023-04-06 10:49:05

查看是否有远程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/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。

更多推荐

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

本文发布于:2023-04-06 10:49:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/29ba78aec04ce8f66561279cc2f2adf1.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:连接数据库   ERROR   Navicat   Access   root

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 49140文章数
  • 14阅读数
  • 0评论数