mysql 8.0默认使用caching_sha2_password认证插件,旧版workbench仅支持mysql_native_password,导致er_not_supported_auth_mode错误;需执行alter user ... identified with mysql_native_password并flush privileges,同时检查ssl配置、bind-address及客户端架构匹配性。

MySQL 8.0 默认认证插件不兼容旧版 Workbench
MySQL 8.0 开始默认使用 sha256_password 或 caching_sha2_password 认证插件,而旧版 MySQL Workbench(尤其是 6.x 或早期 7.x)只支持 mysql_native_password。连接时会直接报错:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server。
这不是网络或权限问题,是底层鉴权协议握手失败。Workbench 尝试用老协议发起挑战,MySQL 8.0 拒绝响应。
- 必须在 MySQL 服务端显式为用户切换认证方式,不能靠 Workbench 端“降级设置”绕过
-
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';是唯一可靠解法 - 执行后务必运行
FLUSH PRIVILEGES;,否则变更不生效 - 如果用户 host 是
%而非localhost,要对应改成'root'@'%'
SSL 连接强制启用导致 handshake 失败
MySQL Workbench 8.0+ 默认将 useSSL 设为 2(即“要求 SSL”),但本地开发环境的 MySQL 8.0 实例通常未配置有效证书,连接直接中断,报错:SSL connection error: SSL is required but the server doesn't support it。
这个错误容易被误判为数据库挂了或密码错,其实只是 SSL 协商卡死。
- 修改位置是
C:\Users\[用户名]\AppData\Roaming\MySQL\Workbench\connections.xml(Windows)或~/Library/Application Support/MySQL/Workbench/connections.xml(macOS) - 找到对应连接段里的
<value type="int" key="useSSL">2</value>,改为1 - 改完必须重启 Workbench,热重载不生效
- 不建议全局关 SSL,生产环境应配好证书并保持
useSSL=2
my.cnf 缺失或 bind-address 配置不当
MySQL 安装后若没生成 my.cnf(Linux/macOS)或 my.ini(Windows),bind-address 默认可能是 127.0.0.1 或空值,导致 Workbench 用 127.0.0.1 连接时被拒绝,但用 localhost 又能通——因为后者走 socket 文件,绕过了 TCP 栈。
这种现象在 macOS 和某些 Linux 发行版上特别明显,报错是:2003 - Can't connect to MySQL server on '127.0.0.1' (61 "Connection refused")。
- 手动创建
/etc/my.cnf(macOS/Linux)或C:\ProgramData\MySQL\MySQL Server 8.0\my.ini(Windows) - 至少写两行:
bind-address = 127.0.0.1和port = 3306 - 改完必须重启 MySQL 服务,
systemctl restart mysqld或 Windows 服务管理器里重启MySQL80 - 验证是否生效:运行
mysql -h 127.0.0.1 -P 3306 -u root -p,能进就说明配置落地了
Workbench 版本与 MySQL Server 架构/OS 类型错配
64 位 MySQL Server 配 32 位 Workbench、Windows 环境里把连接目标设成 “Linux”、或者 macOS 上用了 Windows 编译的 installer 包——这些都会触发运行时类型校验失败,报错类似:Target host is configured as Windows, but seems to be a different OS。
这类错误不会出现在日志第一行,而是 Workbench 启动连接流程中途崩溃,界面卡在“Connecting…”或弹窗报 runtime error。
- 检查 Workbench 安装包名是否含
x86_64(64 位)或x86(32 位),和 MySQL Server 的mysqld --version输出对齐 - 在 Workbench 的连接编辑页,“Connection Method” 下拉菜单里确认选的是实际操作系统类型,不是“Auto-detect”
- Windows 用户尤其注意:不要从 MySQL Installer 社区版里勾选“MySQL Workbench”组件自动安装,它常捆绑不匹配版本;优先去
https://downloads.mysql.com/archives/workbench/手动选8.0.x对应架构的独立安装包
很多问题表面是“连不上”,实际是三四个环节同时失效:认证协议不认、SSL 握手卡住、TCP 绑定没开、客户端架构错位。单改一个地方往往没用,得按顺序逐项验证。最省时间的做法是:先用命令行 mysql -h 127.0.0.1 -P 3306 -u root -p 确认底层通不通,再打开 Workbench 查具体哪步断掉。











