MySQL 8.0 Workbench部分对象显示‘fetching...’无法加载但可SQL操作
这种情况我之前折腾过好几次,结合你说的能通过SQL正常操作但Workbench里刷不出来的现象,说明数据库本身是正常的,问题出在Workbench的元数据加载环节。给你几个亲测有效的排查方向:
手动刷新元数据缓存
这是最常见的解决办法。在Schemas面板的右上角有个圆形箭头的「刷新」按钮,点击它重新加载当前Schema的元数据。如果单个刷新没用,右键对应的Schema,选择Refresh All,彻底刷新所有对象的元数据。很多时候就是第一次加载时卡住了,刷新一下就恢复。检查版本兼容性
虽然你装的是最新版Workbench,但如果你的MySQL服务器版本比较老,可能存在版本兼容bug。比如某些旧版MySQL的元数据格式,新版Workbench解析时会出问题。可以尝试降级Workbench到和服务器版本更匹配的版本,或者确认官方的兼容说明(比如Workbench 8.0.x最好搭配MySQL 5.7+的服务器)。清除Workbench本地缓存
Workbench会把元数据缓存到本地文件,缓存损坏就会导致加载异常。Windows下缓存路径一般是:C:\Users\[你的用户名]\AppData\Roaming\MySQL\Workbench\sql_workspaces
找到对应Schema的缓存文件夹,删除后重启Workbench,它会重新从服务器拉取元数据。验证账号权限
虽然你能执行SQL操作,但Workbench加载元数据需要特定的权限,比如查看视图需要SHOW VIEW权限,查看存储过程/函数需要SHOW ROUTINE权限。执行下面的命令检查当前账号权限:SHOW GRANTS FOR CURRENT_USER;如果缺少这些权限,联系管理员给账号加上对应的权限即可。
重启Workbench或释放资源
有时候Workbench进程内存占用过高,导致元数据加载线程卡住。关闭所有没用的连接和Workbench窗口,彻底重启软件,释放系统资源后再尝试加载。检查MySQL服务器日志
如果上面的方法都没用,可能是服务器返回元数据时存在异常。查看MySQL的error log,看看有没有关于视图、存储过程解析的报错——比如某个对象的定义有语法问题(虽然SQL能执行,但Workbench解析元数据时会失败),针对性修复后就能正常加载了。
内容的提问来源于stack exchange,提问作者Autodidactyle

