最常见的错误是人们不指出他们正在使用的MySQL分发的版本号,或不指出在什么平台上平台安装了 MySQL (包括平台版本号)。这是极其相关的信息,并且没有它99%错误报告是无用的!我们经常得到这样的提问“为什么它不给我工作?”,然后我们发现所需的功能还没有在该版本的 MySQL 中实现,或在一份报告中描述的一个错误已经在更新的MySQL 版本修正了。有时错误是依赖于平台,在这种情况下,不知道平台操作系统和版本号根本不可能修正任何东西。
你正在使用的 MySQL 分发的版本号(例如, MySQL 3.22.22 )。你可以执行mysqladmin version找到你正在运行哪个版本。mysqladmin可以在你的MySQL安装目录的'bin'目录下面找到。
你正在使用的机器的制造商和型号。
操作系统名字和版本。对大多数操作系统,你可以通过执行一条Unix命令uname -a 得到有关信息。
有时存储器的数量(物理和虚拟的)是有意义的,如果有疑问,包含这些值。
如果你正在使用一个MySQL源代码分发 ,则需要使用的编译器的名称和版本号。如果你有一个二进制代码的分发,就需要该分发的名字。
如果问题在编译期间发生,则包含准确的错误消息,并且也包含问题发生的文件中出错代码周围的一些上下文。
如果任何数据库表与问题有关,包含从 mysqldump --db_name tbl_name1 tbl_name2 …的输出结果。这是很容易做到的,并且它是一个获得有关任何数据库表信息的有效方法,将帮助我们创造一个匹配你所遇到问题的环境。
对于与速度或SELECT语句有关的问题,你总是应该包括EXPLAIN SELECT...的输出和至少SELECT语句产生的行数。你给出有关你的情况越多的信息,某些人越能帮助你。例如,下列的例子是一份很好的错误报告(当然它应该用与 mysqlbug 脚本邮寄):运行 mysql 命令行工具的例子(注意对其输出超过80列显示设备的语句使用\G终止符):
mysql> SHOW VARIABLES;
mysql> SHOW COLUMNS FROM ...\G
mysql> EXPLAIN SELECT ...\G
mysql> FLUSH STATUS;
mysql> SELECT ...;
including the time taken to run the query>
mysql> SHOW STATUS;
进入【UNIX论坛】