”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么我会遇到MySQL错误1698(访问被拒绝),该如何解决?

为什么我会遇到MySQL错误1698(访问被拒绝),该如何解决?

发布于2025-03-25
浏览:673

Why Am I Getting MySQL Error 1698 (Access Denied) and How Can I Fix It?

Handling Error 1698 During MySQL Login

Users may encounter ERROR 1698 (28000): Access denied for user 'root'@'localhost' when trying to log into the MySQL database with the root user.此错误通常在Ubuntu之类的系统上遇到,其中MySQL默认使用UNIX auth_socket插件进行身份验证。

依赖于系统用户凭证用于真实。通过查询mysql.user表,您可以验证root用户已在此插件中注册:

选择用户,host,host,from MySql.user; 此方法涉及设置root用户以使用更传统的mysql_native_password插件:

option 2:创建一个新的数据库用户(推荐)
SELECT User, Host, plugin FROM mysql.user;
使用您的系统用户名创建新的数据库用户。这提供了一个更易于管理,更安全的选项:

创建用户'your_system_user'@'localhost'由'your_passwd'确定的; 将 *。 *授予'your_system_user'@'localhost'; 更新用户集插件='auth_socket'其中用户='your_system_user'; 冲洗特权; sudo service mysql restartNote that with Option 2, you will connect to MySQL using your system username:

mysql -u YOUR_SYSTEM_USER
Additional Considerations:

UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
sudo service mysql restart

In MySQL versions 8.x.x, the Auth_socket插件可能已被Caching_SHA2_Password替换。请咨询MySQL文档,以获取适当的身份验证插件和登录方法。在debian 9(strention)中,auth_socket插件被重命名为unix_socket。相应地调整sql命令。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3