MySQL Workbench使用root用户连接127.0.0.1:3306出现访问被拒绝错误
MySQL Workbench本地连接报错排查解决步骤
1 排查MySQL服务运行状态(对应报错unable to connect localhost)
首先确认本地MySQL服务已正常启动:
- Windows系统:按下
Win+R输入services.msc打开服务管理器,找到名称以MySQL开头的服务,确认状态为正在运行,若未启动右键选择「启动」即可。 - macOS/Linux系统:终端执行对应命令查看服务状态:
- Linux(Systemd管理):
sudo systemctl status mysqld,未启动则执行sudo systemctl start mysqld - macOS(Homebrew安装):
brew services list,未启动则执行brew services start mysql - 其他安装方式参考对应官方启动流程
- Linux(Systemd管理):
2 排查账户权限与密码问题(对应报错access denied for user 'root'@'localhost'(using password:NoNo))
该报错明确说明root账户密码不匹配或无本地登录权限,按以下步骤处理:
2.1 确认密码正确性
报错提示using password:NoNo说明你已在Workbench中输入密码,但与MySQL存储的root账户密码不一致,若忘记root密码可按以下流程重置:
重置root密码(MySQL 8.0及以上版本通用):
- 停止正在运行的MySQL服务
- 启动跳过权限验证的MySQL实例:
- Windows:进入MySQL安装目录的bin文件夹,执行
mysqld --skip-grant-tables --shared-memory- macOS/Linux:执行
sudo mysqld_safe --skip-grant-tables &- 新开终端窗口执行
mysql -u root直接登录MySQL,执行FLUSH PRIVILEGES;- 执行命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你设置的新密码';- 停止跳过权限验证的MySQL实例,正常启动MySQL服务即可用新密码登录
2.2 确认root账户本地登录权限
若密码确认正确仍报错,登录MySQL后执行SELECT user,host FROM mysql.user WHERE user='root';查看root账户允许的登录主机:
- 若查询结果无
localhost或127.0.0.1对应的条目,执行以下命令添加权限:CREATE USER 'root'@'localhost' IDENTIFIED BY '你的root密码'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
3 确认Workbench连接配置正确
- 连接参数中Host填
127.0.0.1或localhost,Port默认值为3306,若你修改过MySQL端口需改为对应自定义端口 - 密码输入框填写正确的root密码,避免拼写错误、前后空格
- 若使用MySQL 8.0+版本,连接配置中认证方式选择Native MySQL Authentication,可避免caching_sha2_password的兼容问题
内容的提问来源于stack exchange,提问作者Ko John
相关产品推荐
相关产品推荐

