@MySQL WorkBenchWindow 11 环境Data Export无法使用
问题描述
平时使用mysql workbench功能都正常,今天突然无法使用Data export功能,提示错误信息:
分析过程
根据提示错误,在workbench的modules中查看wb_admin_export.py的逻辑,找到错误输出的位置,源码如下:
查看get_mysqldump_version方法,具体如下:
这里有三个log.error,所以为了确认是哪一步出错,查看workbench日志,错误信息如下:
比对日志与源码,可以发现是在正则匹配时,匹配失败导致出错,大概可以确定,是mysqldump --version的输出结果不符合正则的格式,从日志中我们可以看到,命令行的输出格式有两行,导致正则匹配失败:
理想情况,命令行输出应该只有一行,多出一行“Active code page:65001”,这标识当前cmd页面的编码,65001是UTF-8编码
解决方式
从上面的分析可以看出,只需要禁止“Active code page:65001”输出即可,下面一行可以正确匹配到正则表达式,获取正确的mysqldump version,具体方式为,在注册表中将chcp 65001输出到黑洞: