1.6 How to Report Bugs or Problems如何报告Bug或问题

Before posting a bug report about a problem, please try to verify that it is a bug and that it has not been reported already:在发布有关问题的错误报告之前,请尝试验证这是一个错误,并且尚未报告:

If you cannot find an answer in the manual, the bugs database, or the mailing list archives, check with your local MySQL expert. If you still cannot find an answer to your question, please use the following guidelines for reporting the bug.如果您在手册、错误数据库或邮件列表档案中找不到答案,请咨询您当地的MySQL专家。如果您仍然找不到问题的答案,请使用以下指南报告错误。

The normal way to report bugs is to visit http://bugs.mysql.com/, which is the address for our bugs database. 报告错误的正常方式是访问http://bugs.mysql.com/,这是我们bug数据库的地址。This database is public and can be browsed and searched by anyone. If you log in to the system, you can enter new reports.这个数据库是公共的,任何人都可以浏览和搜索。如果您登录到系统,则可以输入新的报告。

Bugs posted in the bugs database at http://bugs.mysql.com/ that are corrected for a given release are noted in the release notes.位于http://bugs.mysql.com/的错误数据库中发布的错误在发行说明中注明了针对给定发行版更正的。

If you find a security bug in MySQL Server, please let us know immediately by sending an email message to . 如果您在MySQL Server中发现安全漏洞,请立即发送电子邮件至<>Exception: Support customers should report all problems, including security bugs, to Oracle Support at http://support.oracle.com/.例外情况:支持客户应向Oracle支持部门报告所有问题,包括安全漏洞,网址为http://support.oracle.com/

To discuss problems with other users, you can use the MySQL Community Slack.要与其他用户讨论问题,您可以使用MySQL社区Slack

Writing a good bug report takes patience, but doing it right the first time saves time both for us and for yourself. 写一份好的bug报告需要耐心,但第一次做对就可以为我们和你自己节省时间。A good bug report, containing a full test case for the bug, makes it very likely that we will fix the bug in the next release. 一个好的bug报告,包含bug的完整测试用例,使我们很可能在下一个版本中修复bug。This section helps you write your report correctly so that you do not waste your time doing things that may not help us much or at all. Please read this section carefully and make sure that all the information described here is included in your report.本节帮助您正确撰写报告,这样您就不会浪费时间做对我们帮助不大或根本没有帮助的事情。请仔细阅读本节,并确保此处描述的所有信息都包含在您的报告中。

Preferably, you should test the problem using the latest production or development version of MySQL Server before posting. 最好,在发布之前,您应该使用MySQL Server的最新生产或开发版本来测试这个问题。Anyone should be able to repeat the bug by just using mysql test < script_file on your test case or by running the shell or Perl script that you include in the bug report. 任何人都应该能够通过在测试用例中使用mysql test < script_file,或者通过运行错误报告中包含的shell或Perl脚本来重复该错误。Any bug that we are able to repeat has a high chance of being fixed in the next MySQL release.我们能够重复的任何错误都很有可能在下一个MySQL版本中得到修复。

It is most helpful when a good description of the problem is included in the bug report. 当错误报告中包含对问题的良好描述时,这是最有帮助的。That is, give a good example of everything you did that led to the problem and describe, in exact detail, the problem itself. 也就是说,举一个很好的例子,说明你所做的导致问题的一切,并准确详细地描述问题本身。The best reports are those that include a full example showing how to reproduce the bug or problem. See Section 5.9, “Debugging MySQL”.最好的报告包括一个完整的示例,说明如何重现错误或问题。请参阅第5.9节,“调试MySQL”

Remember that it is possible for us to respond to a report containing too much information, but not to one containing too little. People often omit facts because they think they know the cause of a problem and assume that some details do not matter. 请记住,我们可以对包含过多信息的报告作出回应,但不能对包含过少信息的报告做出回应。人们经常忽略事实,因为他们认为自己知道问题的原因,并认为一些细节无关紧要。A good principle to follow is that if you are in doubt about stating something, state it. It is faster and less troublesome to write a couple more lines in your report than to wait longer for the answer if we must ask you to provide information that was missing from the initial report.一个很好的原则是,如果你对陈述有疑问,就陈述出来。如果我们必须要求你提供最初报告中缺失的信息,那么在报告中多写几行比等待更长时间的答案更快、更不麻烦。

The most common errors made in bug reports are (a) not including the version number of the MySQL distribution that you use, and (b) not fully describing the platform on which the MySQL server is installed (including the platform type and version number). 错误报告中最常见的错误是(a)没有包括您使用的MySQL发行版的版本号,以及(b)没有完全描述安装MySQL服务器的平台(包括平台类型和版本号)。These are highly relevant pieces of information, and in 99 cases out of 100, the bug report is useless without them. 这些都是高度相关的信息,在百分之九十九的情况下,没有它们,错误报告就毫无用处。Very often we get questions like, Why doesn't this work for me? Then we find that the feature requested wasn't implemented in that MySQL version, or that a bug described in a report has been fixed in newer MySQL versions. 我们经常会遇到这样的问题:“为什么这对我不起作用?”然后我们发现请求的功能没有在那个MySQL版本中实现,或者报告中描述的错误已经在较新的MySQL版本中修复。Errors often are platform-dependent. In such cases, it is next to impossible for us to fix anything without knowing the operating system and the version number of the platform.错误通常取决于平台。在这种情况下,我们几乎不可能在不知道操作系统和平台版本号的情况下修复任何东西。

If you compiled MySQL from source, remember also to provide information about your compiler if it is related to the problem. Often people find bugs in compilers and think the problem is MySQL-related. Most compilers are under development all the time and become better version by version. To determine whether your problem depends on your compiler, we need to know what compiler you used. Note that every compiling problem should be regarded as a bug and reported accordingly.如果您从源代码编译MySQL,请记住,如果与问题有关,还应提供有关编译器的信息。人们经常在编译器中发现错误,并认为问题与MySQL有关。大多数编译器一直在开发中,并且一个版本接一个版本地变得更好。为了确定您的问题是否取决于您的编译器,我们需要知道您使用了什么编译器。请注意,每一个编译问题都应该被视为一个bug,并相应地进行报告。

If a program produces an error message, it is very important to include the message in your report. If we try to search for something from the archives, it is better that the error message reported exactly matches the one that the program produces. (Even the lettercase should be observed.) It is best to copy and paste the entire error message into your report. You should never try to reproduce the message from memory.如果程序生成错误消息,那么在报告中包含该消息是非常重要的。如果我们试图从档案中搜索某些内容,最好报告的错误消息与程序生成的错误消息完全匹配。(甚至要注意信纸。)最好将整个错误信息复制并粘贴到报告中。你永远不应该试图从记忆中重现信息。

If you have a problem with Connector/ODBC (MyODBC), please try to generate a trace file and send it with your report. See How to Report Connector/ODBC Problems or Bugs.如果连接器/ODBC(MyODBC)有问题,请尝试生成跟踪文件并将其与报告一起发送。请参阅如何报告连接器/ODBC问题或错误

If your report includes long query output lines from test cases that you run with the mysql command-line tool, you can make the output more readable by using the --vertical option or the \G statement terminator. 如果您的报告包含使用mysql命令行工具运行的测试用例的长查询输出行,则可以使用--vertical选项或\G语句终止符使输出更具可读性。The EXPLAIN SELECT example later in this section demonstrates the use of \G.本节后面的EXPLAIN SELECT示例演示了\G

Please include the following information in your report:请在您的报告中包括以下信息: