admin管理员组文章数量:1794759
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设置参考链接: 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。
本文标签: 连接数据库errorNavicatAccessroot
版权声明:本文标题:Navicat 远程连接数据库 ERROR 1698 : Access denied for user ‘root‘@‘localhost‘ 问题解决 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686960027a122436.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论