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

锦通  金牌会员 | 2024-10-11 04:28:59 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 919|帖子 919|积分 2757

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误通常发生在使用 UNIX socket 认证的 MySQL 上,这意味着 MySQL 尝试使用体系用户认证而不是传统的用户名和密码认证。
以下是几种解决此题目标方法:
方法 1: 使用 sudo 登录 MySQL

如果 MySQL 使用 UNIX socket 认证,你可以通过 sudo 提升权限登录 MySQL:
  1. sudo mysql -u root
复制代码
方法 2: 修改 root 用户的认证方式

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

  • 使用 sudo 登录 MySQL
    1. sudo mysql -u root
    复制代码
  • 切换到 mysql 数据库
    1. USE mysql;
    复制代码
  • 修改 root 用户的认证方式
    1. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
    复制代码
  • 革新权限
    1. FLUSH PRIVILEGES;
    复制代码
  • 退出 MySQL
    1. EXIT;
    复制代码
现在,你应该能够使用密码登录 MySQL:
  1. mysql -u root
  2. -p
复制代码
方法 3: 重置 root 用户的密码

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

  • 停止 MySQL 服务
    1. sudo systemctl stop mysql
    复制代码
  • 以跳过权限表的模式启动 MySQL
    1. sudo mysqld_safe --skip-grant-tables &
    复制代码
  • 登录 MySQL
    1. mysql -u root
    复制代码
  • 重置 root 用户的密码
    1. FLUSH PRIVILEGES;
    2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    复制代码
  • 退出 MySQL
    1. EXIT;
    复制代码
  • 停止 MySQL 安全模式
    1. sudo mysqladmin -u root -p shutdown
    复制代码
  • 重新启动 MySQL 服务
    1. sudo systemctl start mysql
    复制代码
现在,你应该能够使用新密码登录 MySQL:
  1. mysql -u root
  2. -p
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表