登录Mysql时出现了 ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘报错的解决方案

问题

在这里插入图片描述
当我使用用户登录时会出现无法登录的结果,需要系统权限为root,也就是每次登录都要使用sudo mysql -u root -p才可以登录

原因

新版本的MySQL就是这样做的
在新的MySQL客户端中,如果安装时密码留空,则基于插件auth_socket

在这里插入图片描述
这里我们看到在mysql存储密码为空那么默认使用插件auth_socket

解决方法

  • 正确的方法是使用权限登录MySQL sudo。
sudo mysql -u root -p
  • 然后使用以下命令更新密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';

= 完成此操作后,我们可以看到插件变化为使用用户的密码
在这里插入图片描述

  • 停止并启动MySQL 服务器。
sudo service mysql stop
sudo service mysql start

参考方案

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值