无法连接MySQL:root用户登录权限被拒问题求助
解决MySQL root用户登录Access Denied问题的方案
方法1:跳过权限验证重置root密码
这是解决登录失败最直接的方案,步骤如下:
- 停止MySQL服务
Windows系统在CMD中执行:
Linux系统执行:net stop mysqlsudo systemctl stop mysql - 启动MySQL并跳过权限验证
Windows系统先进入MySQL的bin目录(例:cd C:\Program Files\MySQL\MySQL Server 8.0\bin),再执行:
Linux系统执行:mysqld --skip-grant-tablessudo mysqld_safe --skip-grant-tables & - 无密码登录MySQL
打开新的CMD/终端窗口,执行:mysql -u root - 重置root密码
在MySQL命令行中执行(替换你的新密码为实际密码,适用于MySQL 8.0+版本):
若为MySQL旧版本,改用:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';UPDATE mysql.user SET Password=PASSWORD('你的新密码') WHERE User='root' AND Host='localhost'; - 刷新权限并重启服务
执行:
退出MySQL命令行后重启服务:FLUSH PRIVILEGES;
Windows:
Linux:net start mysqlsudo systemctl restart mysql
方法2:检查root用户的主机权限
部分场景下root用户仅被允许从特定主机登录,可按以下步骤确认调整:
- 按照方法1的步骤1-3登录MySQL
- 查看root用户的主机配置:
SELECT user, host FROM mysql.user WHERE user='root'; - 若需要允许root从本地登录,执行:
若需要允许远程登录,执行:ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';ALTER USER 'root'@'%' IDENTIFIED BY '你的密码'; - 刷新权限后重启服务:
FLUSH PRIVILEGES;
方法3:解决CMD中的字符集错误
针对CMD中出现的Unknown operating system character set 'cp857'错误,可通过两种方式处理:
- 临时修改CMD字符集
登录MySQL前,先在CMD中执行:
切换到UTF-8字符集后,再执行登录命令:chcp 65001mysql -u root -p - 永久修改MySQL字符集配置
找到MySQL的配置文件(Windows为my.ini,Linux为my.cnf),添加或修改以下配置:
保存后重启MySQL服务即可。[client] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
内容的提问来源于stack exchange,提问作者enverefe12
相关产品推荐
相关产品推荐

