以下是报告 MySQL Workbench 错误的一些有用技巧和信息。
一份有用的错误报告包括:
重现错误所采取的确切步骤,如果错误难以重现,最好是视频。
如果错误是可见的,请提供屏幕截图。
错误消息,包括发送到标准输出和 GUI 的文本。
-
MySQL Workbench 日志文件的副本。
日志文件位置可以使用 MySQL Workbench 中的
、 找到。
无法重现的错误很难甚至不可能修复,因此提供重现错误所需的步骤非常重要。
在哪里报告错误
访问 http://bugs.mysql.com/ 并使用 MySQL Workbench
错误类别之一。
日志级别
有六种不同的日志级别,详细程度递增:error
、warning
、info
、debug1
、debug2
和 debug3
。默认情况下,error
、warning
和 info
级别是启用的。还有一个 none
级别,用于禁用日志记录。
请在生成报告日志之前启用 debug3
级别。
可以使用环境变量、命令行参数或将日志级别指定为首选项选项(请参阅其他首选项)来配置启用的错误日志级别。
环境变量、命令行变量和首选项选项接受单个错误级别,但启用更详细的选项会隐式启用其下的级别。例如,传入 info
也会启用 error
和 warning
级别。
-
环境变量:
WB_LOG_LEVEL
命令行选项:
--log-level
如果同时设置了命令行和环境变量,则命令行优先。
例如
# Microsoft Windows
$> cd "C:\Program Files (x86)\MySQL\MySQL Workbench CE 8.0.38\"
$> MySQLWorkbench.exe --log-level=debug3
# macOS
$> cd /Applications
$> MySQLWorkbench --log-level=debug3
# Linux (Ubuntu)
$> cd /usr/bin
$> mysqlworkbench --log-level=debug3
如果启用了 info
级别,则还会记录系统信息和应用程序中使用的所有路径。在 Microsoft Windows 上,这也意味着日志文件包含程序当前活动的完整环境变量集。
操作系统特定说明
Microsoft Windows
日志文件位置:靠近用户的应用程序数据文件夹,例如 Microsoft Windows 10 的
C:\Users\[user]\AppData\Roaming\MySQL\Workbench\log
。如果出现错误(或异常),日志文件将包含 MySQL Workbench 可以跟踪到的堆栈跟踪(通常只有 C# 代码,没有 C++ 代码)。此外,如果启用了警告(或更高级别)日志级别,则所有警告都会添加到日志中。
如果发生崩溃,并且 MySQL Workbench 团队无法复制该崩溃,并且无法获取堆栈跟踪,我们将请求崩溃转储。有关启用崩溃转储的说明,请参见此处,另请阅读 MSDN 关于此的详细信息,因为我们需要完整的转储,而不是迷你转储。
对于与显示问题相关的崩溃,请使用
-swrendering
参数启动 MySQL Workbench(并且仅在这种情况下,因为它会关闭 OpenGL 渲染,这在 WBA 或 WQE 中没有用处)。此输出将添加到日志文件中。如果 MySQL Workbench 在启动时崩溃(尤其是当错误报告中包含有关
kernelbase.dll
的内容时),我们将要求您在MySQLWorkbench.exe
二进制文件上运行depends.exe
,并询问报告的错误。如果 MySQL Workbench 在启动时崩溃,并且是 64 位版本的 Microsoft Windows,请检查是否安装了正确的 MSVC 运行时。人们通常会安装 64 位版本的运行时,但只有 32 位版本的运行时才能正常工作。
macOS
日志文件位置:
~/Library/Application Support/MySQL/Workbench/logs
为 Workbench 生成的系统崩溃日志位于
~/Library/Logs/DiagnosticReports/MySQLWorkbench*
Linux
日志文件位置:
~/.mysql/workbench/log
-
对于崩溃,我们可能会要求提供可以通过
gdb
生成的堆栈跟踪,步骤如下:注意由于发布的 MySQL Workbench 版本缺少调试符号,因此此步骤是可选的,并且可能不需要。
在 shell 中,执行
source /usr/bin/mysql-workbench
退出 MySQL Workbench
在 shell 中,执行
gdb /usr/bin/mysql-workbench-bin
在 gdb 界面中,键入
run
在 MySQL Workbench 中,重现崩溃
在 gdb 界面中,键入
bt
如果发生崩溃,还要运行
glxinfo
。如果这也崩溃了,那么这就是一个与 OpenGL 相关的驱动程序/X 服务器问题,而不是 MySQL Workbench 特有的问题。