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

无法连接MySQL:root用户登录权限被拒问题求助

解决MySQL root用户登录Access Denied问题的方案

方法1:跳过权限验证重置root密码

这是解决登录失败最直接的方案,步骤如下:

  1. 停止MySQL服务
    Windows系统在CMD中执行:
    net stop mysql
    
    Linux系统执行:
    sudo systemctl stop mysql
    
  2. 启动MySQL并跳过权限验证
    Windows系统先进入MySQL的bin目录(例:cd C:\Program Files\MySQL\MySQL Server 8.0\bin),再执行:
    mysqld --skip-grant-tables
    
    Linux系统执行:
    sudo mysqld_safe --skip-grant-tables &
    
  3. 无密码登录MySQL
    打开新的CMD/终端窗口,执行:
    mysql -u root
    
  4. 重置root密码
    在MySQL命令行中执行(替换你的新密码为实际密码,适用于MySQL 8.0+版本):
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
    
    若为MySQL旧版本,改用:
    UPDATE mysql.user SET Password=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost';
    
  5. 刷新权限并重启服务
    执行:
    FLUSH PRIVILEGES;
    
    退出MySQL命令行后重启服务:
    Windows:
    net start mysql
    
    Linux:
    sudo systemctl restart mysql
    

方法2:检查root用户的主机权限

部分场景下root用户仅被允许从特定主机登录,可按以下步骤确认调整:

  1. 按照方法1的步骤1-3登录MySQL
  2. 查看root用户的主机配置:
    SELECT user, host FROM mysql.user WHERE user='root';
    
  3. 若需要允许root从本地登录,执行:
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
    
    若需要允许远程登录,执行:
    ALTER USER 'root'@'%' IDENTIFIED BY '你的密码';
    
  4. 刷新权限后重启服务:
    FLUSH PRIVILEGES;
    

方法3:解决CMD中的字符集错误

针对CMD中出现的Unknown operating system character set 'cp857'错误,可通过两种方式处理:

  1. 临时修改CMD字符集
    登录MySQL前,先在CMD中执行:
    chcp 65001
    
    切换到UTF-8字符集后,再执行登录命令:
    mysql -u root -p
    
  2. 永久修改MySQL字符集配置
    找到MySQL的配置文件(Windows为my.ini,Linux为my.cnf),添加或修改以下配置:
    [client]
    default-character-set=utf8mb4
    
    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    
    保存后重启MySQL服务即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:48:18