Workbench 连不上 MySQL 8.0 因认证插件不兼容,需执行 ALTER USER ... IDENTIFIED WITH mysql_native_password;Navicat 激活失败多因系统时间不准或代理干扰;Workbench 导出中文乱码须设置 init_command 和导出字符集为 utf8mb4;Navicat 修改大表应避免图形界面,改用带 ALGORITHM=INPLACE 的手动 SQL。

Workbench 连不上 MySQL 8.0?先关掉 caching_sha2_password
MySQL 8.0 默认用 caching_sha2_password 插件认证,但旧版 Workbench(比如 8.0.19 之前)默认不支持,连上去直接报错:Authentication plugin 'caching_sha2_password' cannot be loaded。
临时解法是改用户认证方式,不是降级 MySQL,也不是重装客户端:
- 用命令行登录 MySQL(root 权限),执行:
ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
- 然后
FLUSH PRIVILEGES; - Workbench 里重试连接——注意:别改 root 用户的认证方式到
mysql_native_password后还开远程访问,有安全风险
Navicat 激活失败 / 提示“Invalid activation code”
Navicat 官方从 v15 开始强制在线激活,离线环境或公司防火墙严格时,常见错误是:Failed to connect to activation server 或弹窗显示 Invalid activation code,其实多半不是码错了,而是本地时间不准或代理干扰。
实操建议:
- 校准系统时间(误差超过 5 分钟就会激活失败)
- 临时关闭杀毒软件和企业级代理(尤其带 SSL 解密功能的)
- 如果必须离线,v12–v14 支持离线激活,但仅限旧版本;v15+ 离线需手动导出请求文件、用另一台联网机器激活后再导入,流程麻烦且官方文档藏得深
- 别用网上搜到的“破解补丁”,多数会注入恶意 DLL,连上数据库后偷偷外传表结构
Workbench 导出 SQL 时中文变问号?字符集没对齐
导出的 .sql 文件里中文全成 ???,不是编码问题,是 Workbench 的导出逻辑默认忽略连接层字符集,只认服务端默认值。哪怕建库时指定了 CHARSET=utf8mb4,导出仍可能走 latin1。
关键动作在导出前两步:
- 在 Workbench 连接配置里,“Advanced” 标签页下,填入
init_command=SET NAMES utf8mb4; - 导出时,在“Export to Self-Contained File”选项里,手动勾选
Export table data (INSERT statements),并确认下方“Character set”下拉框选的是utf8mb4(不是默认的UTF8) - 如果已导出乱码文件,别用记事本转码——直接用
iconv -f latin1 -t utf8mb4 bad.sql > good.sql命令重编码更可靠
Navicat 执行大表 ALTER 会卡死?它默认开事务 + 检查约束
在 Navicat 里点右键“Design Table”,加个字段再点“Save”,后台实际发的是带事务的 ALTER TABLE ... ADD COLUMN,遇上千万级表,容易锁表超时,界面卡住不动,日志里只显示 Waiting for table metadata lock。
绕过方式很简单,但很多人不知道入口在哪:
- 菜单栏点
Tools → Server Monitor,看当前有没有长事务占着表;有就 kill 掉 - 真正要改大表,别用图形界面点“Save”,直接开
Query窗口,手写ALTER TABLE tbl_name ADD COLUMN c1 INT, ALGORITHM=INPLACE, LOCK=NONE;(MySQL 5.6+ 支持) - Navicat 的“自动提交”默认开,但某些版本在 Design Table 流程里会悄悄关掉,导致 ALTER 被包进隐式事务——所以改完立刻点工具栏的
Commit按钮,别等它自己提
图形工具省事,但底层还是 SQL;连字符集、认证插件、事务行为这些细节漏掉一个,操作就卡在半路。别怪工具不智能,是它根本没机会告诉你正在用什么协议、什么隔离级别干活。


















