ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误通常发生在使用 UNIX socket 认证的 MySQL 上,这意味着 MySQL 尝试使用系统用户认证而不是传统的用户名和密码认证。

以下是几种解决此问题的方法:

方法 1: 使用 sudo 登录 MySQL

如果 MySQL 使用 UNIX socket 认证,你可以通过 sudo 提升权限登录 MySQL:

bash 复制代码
sudo mysql -u root

方法 2: 修改 root 用户的认证方式

如果希望使用密码认证而不是 UNIX socket 认证,可以按照以下步骤修改 root 用户的认证方式:

  1. 使用 sudo 登录 MySQL:

    bash 复制代码
    sudo mysql -u root
  2. 切换到 mysql 数据库:

    sql 复制代码
    USE mysql;
  3. 修改 root 用户的认证方式:

    sql 复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
  4. 刷新权限:

    sql 复制代码
    FLUSH PRIVILEGES;
  5. 退出 MySQL:

    sql 复制代码
    EXIT;

现在,你应该能够使用密码登录 MySQL:

bash 复制代码
mysql -u root -p

方法 3: 重置 root 用户的密码

如果你仍然无法访问 MySQL,可能需要重置 root 用户的密码:

  1. 停止 MySQL 服务:

    bash 复制代码
    sudo systemctl stop mysql
  2. 以跳过权限表的模式启动 MySQL:

    bash 复制代码
    sudo mysqld_safe --skip-grant-tables &
  3. 登录 MySQL:

    bash 复制代码
    mysql -u root
  4. 重置 root 用户的密码:

    sql 复制代码
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  5. 退出 MySQL:

    sql 复制代码
    EXIT;
  6. 停止 MySQL 安全模式:

    bash 复制代码
    sudo mysqladmin -u root -p shutdown
  7. 重新启动 MySQL 服务:

    bash 复制代码
    sudo systemctl start mysql

现在,你应该能够使用新密码登录 MySQL:

bash 复制代码
mysql -u root -p
相关推荐
ao-weilai2 天前
MySQL数据库:表操作
数据库·mysql·adb
Lancker5 天前
记一次 Druid 连接 MySQL 报 Communications link failure 的排查过程
数据库·mysql·adb
JosieBook6 天前
【数据库】MySQL 实战精通系列 · 第1篇:MySQL 全局观与实战环境搭建
数据库·mysql·adb
蒸鱼Yuzheng6 天前
设备端性能工件可靠导出:断点续传、哈希、manifest 与失败恢复
android·自动化测试·python·adb·数据完整性
文人sec15 天前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
2501_9160088916 天前
SSE 和 gRPC 流式接口如何抓包,调试 SSE 与 gRPC 流式接口
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_9160088919 天前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
鸽芷咕21 天前
MySQL Server 鸿蒙 PC 适配全记录:以混合工具链完成 C++23 交叉编译与 HNP 交付
adb·harmonyos·c++23
游戏开发爱好者823 天前
网络连接排查指南,谁在电脑后台偷跑流量,哪些程序在联网
网络协议·计算机网络·网络安全·ios·adb·https·udp
实心儿儿23 天前
MySQL 的安装
数据库·mysql·adb