You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sudo仍无法解决ERROR 1045(28000):root用户本地访问MySQL被拒绝问题

修复MySQL 'root'@'localhost' 访问被拒绝的问题

核心修复步骤(适用于主流Linux发行版)

  • 停止MySQL服务
    根据系统执行对应命令:
    Ubuntu/Debian:

    sudo systemctl stop mysql
    

    CentOS/RHEL:

    sudo systemctl stop mysqld
    
  • 跳过权限验证启动MySQL
    启动时跳过权限表检查,实现无密码登录:
    Ubuntu/Debian:

    sudo mysqld_safe --skip-grant-tables &
    

    CentOS/RHEL:

    sudo mysqld --skip-grant-tables &
    

    旧版系统可尝试:

    sudo service mysql start --skip-grant-tables
    
  • 无密码登录MySQL
    直接执行命令进入:

    mysql -u root
    
  • 重置root用户密码
    进入MySQL命令行后按版本操作:

    1. 切换到系统核心库:
      use mysql;
      
    2. 重置密码:
      • MySQL 5.x及更早版本:
        UPDATE user SET Password=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost';
        
      • MySQL 8.0及以上版本:
        先刷新权限避免报错:
        FLUSH PRIVILEGES;
        
        再修改密码:
        ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
        
    3. 强制刷新权限:
      FLUSH PRIVILEGES;
      
    4. 退出MySQL:
      exit;
      
  • 恢复正常启动MySQL
    先停止跳过权限的进程,再正常启动:

    sudo systemctl stop mysql
    sudo systemctl start mysql
    

    进程未停止时可强制杀死:

    sudo pkill mysqld
    
  • 测试连接
    执行命令输入新密码,验证登录:

    mysql -u root -p
    

额外排查方向

如果上述步骤无效,可检查:

  • 查看mysql库user表中root用户的Host字段是否为localhost
  • 检查MySQL配置文件(/etc/mysql/my.cnf或/etc/my.cnf)是否有禁止root本地登录的配置
  • 尝试执行mysql_upgrade -u root -p修复可能损坏的权限表

内容的提问来源于stack exchange,提问作者soyyy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:55:39