Software Outsourcing, Offshore Software Development, Offshore Outsourcing Services, IT Outsourcing, Offshore Development
MySQL manual Offshore Software Outsourcing and Programming, IT Outsourcing Offshore Software Development  
Call Us Today: 1-800-678-9001
Offshore Software Outsourcing and Programming, IT Outsourcing Offshore Software Development

Home / Technical Support / MySQL

Key Offerings:

B2B and B2C E-Business Solutions

Offshore Software Development Outsourcing

Strategic Consulting

Offshore Software Outsourcing

About ALTOROS: ALTOROS Systems is headquartered in Tampa, Florida and maintains an office near Boston, Massachusetts and technology development center in Belarus and Russia. ALTOROS specializes on providing value-added e-commerce and web-based software development and offshore software outsourcing services to emerging enterprises helping them successfully plan and implement business initiatives.

Contact Us for more information.

Node: Bug reports, Next: Answering questions, Prev: Asking questions, Up: Questions
How to Report Bugs or Problems
 
Writing a good bug report takes patience, but doing it right the first time saves time for us and for you.  A good bug report containing a full test case for the bug will make it very likely that we will fix it in the next release.  This section will help you write your report correctly so that you don't waste your time doing things that may not help us much or at all.
 
We encourage everyone to use the mysqlbug script to generate a bug report (or a report about any problem), if possible.  mysqlbug can be found in the scripts directory in the source distribution, or for a binary distribution, in the bin directory under your MySQL installation directory.  If you are unable to use mysqlbug, you should still include all the necessary information listed in this section.
 
The mysqlbug script helps you generate a report by determining much of the following information automatically, but if something important is missing, please include it with your message!  Please read this section carefully and make sure that all the information described here is included in your report.
 
The normal place to report bugs and problems is <mysql@lists.mysql.com>.  If you can make a test case that clearly demonstrates the bug, you should post it to the <bugs@lists.mysql.com> list.  Note that on this list you should only post a full, repeatable bug report using the mysqlbug script.  If you are running on Windows, you should include a description of the operating system and the MySQL version.  Preferably, you should test the problem using the latest stable or development version of MySQL Server before posting!  Anyone should be able to repeat the bug by just using "mysql test < script" on the included test case or run the shell or Perl script that is included in the bug report.  All bugs posted on the bugs list will be corrected or documented in the next MySQL release!  If only small code changes are needed to correct this problem, we will also post a patch that fixes the problem.
 
If you have found a sensitive security bug in MySQL, you should send an e-mail to <security@mysql.com>.
 
Remember that it is possible to respond to a message containing too much information, but not to one containing too little.  Often people omit facts because they think they know the cause of a problem and assume that some details don't matter.  A good principle is: if you are in doubt about stating something, state it!  It is a thousand times faster and less troublesome to write a couple of lines more in your report than to be forced to ask again and wait for the answer because you didn't include enough information the first time.
 
The most common errors are that people don't indicate the version number of the MySQL distribution they are using, or don't indicate what platform they have the MySQL server installed on (including the platform version number).  This is highly relevant information, and in 99 cases out of 100 the bug report is useless without it!  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 already in newer MySQL versions.  Sometimes the error is platform-dependent; in such cases, it is next to impossible to fix anything without knowing the operating system and the version number of the platform.
 
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 is used.  Note that every compiling problem should be regarded as a bug report and reported accordingly.
 
It is most helpful when a good description of the problem is included in the bug report.  That is, a good example of all the things you did that led to the problem and the problem itself exactly described.  The best reports are those that include a full example showing how to reproduce the bug or problem.  See Reproduceable test case.
 
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 using programs, it is better that the error message reported exactly matches the one that the program produces.  (Even the case should be observed!)  You should never try to remember what the error message was; instead, copy and paste the entire message into your report!
 
If you have a problem with MyODBC, you should try to generate a MyODBC trace file.  See MyODBC bug report.
 
Please remember that many of the people who will read your report will do so using an 80-column display.  When generating reports or examples using the mysql command-line tool, you should therefore use the --vertical option (or the \G statement terminator) for output that would exceed the available width for such a display (for example, with the EXPLAIN SELECT statement; see the example later in this section).
 
Please include the following information in your report:
 
      ·      The version number of the MySQL distribution you are using (for example, MySQL Version 3.22.22). You can find out which version you are running by executing mysqladmin versionmysqladmin can be found in the bin directory under your MySQL installation directory.
 
      ·      The manufacturer and model of the machine you are working on.
 
      ·      The operating system name and version.  For most operating systems, you can get this information by executing the Unix command uname -a.
 
      ·      Sometimes the amount of memory (real and virtual) is relevant. If in doubt, include these values.
 
      ·      If you are using a source distribution of the MySQL software, the name and version number of the compiler used is needed.  If you have a binary distribution, the distribution name is needed.
 
      ·      If the problem occurs during compilation, include the exact error message(s) and also a few lines of context around the offending code in the file where the error occurred.
 
      ·      If mysqld died, you should also report the query that crashed mysqld.  You can usually find this out by running mysqld with logging enabled.  See Using log files.
 
      ·      If any database table is related to the problem, include the output from mysqldump --no-data db_name tbl_name1 tbl_name2 ....  This is very easy to do and is a powerful way to get information about any table in a database that will help us create a situation matching the one you have.
 
      ·      For speed-related bugs or problems with SELECT statements, you should always include the output of EXPLAIN SELECT ..., and at least the number of rows that the SELECT statement produces.  The more information you give about your situation, the more likely it is that someone can help you!  For example, the following is an example of a very good bug report (it should of course be posted with the mysqlbug script):
 
Example run using the mysql command-line tool (note the use of the \G statement terminator for statements whose output width would otherwise exceed that of an 80-column display device):
 
mysql> SHOW VARIABLES;
mysql> SHOW COLUMNS FROM ...\G
       <output from SHOW COLUMNS>
mysql> EXPLAIN SELECT ...\G
       <output from EXPLAIN>
mysql> FLUSH STATUS;
mysql> SELECT ...;
       <A short version of the output from SELECT,
       including the time taken to run the query>
mysql> SHOW STATUS;
       <output from SHOW STATUS>
 
      ·      If a bug or problem occurs while running mysqld, try to provide an input script that will reproduce the anomaly.  This script should include any necessary source files.  The more closely the script can reproduce your situation, the better.  If you can make a reproduceable test case, you should post this to <bugs@lists.mysql.com> for a high-priority treatment!
 
If you can't provide a script, you should at least include the output from mysqladmin variables extended-status processlist in your mail to provide some information of how your system is performing!
 
      ·      If you can't produce a test case in a few rows, or if the test table is too big to be mailed to the mailing list (more than 10 rows), you should dump your tables using mysqldump and create a README file that describes your problem.
 
Create a compressed archive of your files using tar and gzip or zip, and use ftp to transfer the archive to `ftp://support.mysql.com/pub/mysql/secret/'.  Then send a short description of the problem to <bugs@lists.mysql.com>.
 
      ·      If you think that the MySQL server produces a strange result from a query, include not only the result, but also your opinion of what the result should be, and an account describing the basis for your opinion.
 
      ·      When giving an example of the problem, it's better to use the variable names, table names, etc., that exist in your actual situation than to come up with new names.  The problem could be related to the name of a variable or table!  These cases are rare, perhaps, but it is better to be safe than sorry.  After all, it should be easier for you to provide an example that uses your actual situation, and it is by all means better for us.  In case you have data you don't want to show to others, you can use ftp to transfer it to `ftp://support.mysql.com/pub/mysql/secret/'.  If the data is really top secret and you don't want to show it even to us, then go ahead and provide an example using other names, but please regard this as the last choice.
 
      ·      Include all the options given to the relevant programs, if possible.  For example, indicate the options that you use when you start the mysqld daemon and that you use to run any MySQL client programs.  The options to programs like mysqld and mysql, and to the configure script, are often keys to answers and are very relevant!  It is never a bad idea to include them anyway!  If you use any modules, such as Perl or PHP, please include the version number(s) of those as well.
 
      ·      If your question is related to the privilege system, please include the output of mysqlaccess, the output of mysqladmin reload, and all the error messages you get when trying to connect!  When you test your privileges, you should first run mysqlaccess.  After this, execute mysqladmin reload version and try to connect with the program that gives you trouble.  mysqlaccess can be found in the bin directory under your MySQL installation directory.
 
      ·      If you have a patch for a bug, that is good. But don't assume the patch is all we need, or that we will use it, if you don't provide some necessary information such as test cases showing the bug that your patch fixes.  We might find problems with your patch or we might not understand it at all; if so, we can't use it.
 
If we can't verify exactly what the patch is meant for, we won't use it.  Test cases will help us here.  Show that the patch will handle all the situations that may occur.  If we find a borderline case (even a rare one) where the patch won't work, it may be useless.
 
      ·      Guesses about what the bug is, why it occurs, or what it depends on are usually wrong.  Even the MySQL team can't guess such things without first using a debugger to determine the real cause of a bug.
 
      ·      Indicate in your mail message that you have checked the reference manual and mail archive so that others know you have tried to solve the problem yourself.
 
      ·      If you get a parse error, please check your syntax closely!  If you can't find something wrong with it, it's extremely likely that your current version of MySQL Server doesn't support the query you are using.  If you are using the current version and the manual at `http://www.mysql.com/doc/' doesn't cover the syntax you are using, MySQL Server doesn't support your query.  In this case, your only options are to implement the syntax yourself or e-mail <licensing@mysql.com> and ask for an offer to implement it!
 
If the manual covers the syntax you are using, but you have an older version of MySQL Server, you should check the MySQL change history to see when the syntax was implemented.  In this case, you have the option of upgrading to a newer version of MySQL Server.  See News.
 
      ·      If you have a problem such that your data appears corrupt or you get errors when you access some particular table, you should first check and then try repairing your tables with myisamchk or CHECK TABLE and REPAIR TABLE.  See MySQL Database Administration.
 
      ·      If you often get corrupted tables you should try to find out when and why this happens.  In this case, the mysql-data-directory/'hostname'.err file may contain some information about what happened.  See Error log.  Please include any relevant information from this file in your bug report.  Normally mysqld should never crash a table if nothing killed it in the middle of an update!  If you can find the cause of mysqld dying, it's much easier for us to provide you with a fix for the problem.  See What is crashing.
 
      ·      If possible, download and install the most recent version of MySQL Server and check whether it solves your problem.  All versions of the MySQL software are thoroughly tested and should work without problems.  We believe in making everything as backward-compatible as possible, and you  should be able to switch MySQL versions without any hassle.  See Which version.
 
If you are a support customer, please cross-post the bug report to <mysql-support@mysql.com> for higher-priority treatment, as well as to the appropriate mailing list to see if someone else has experienced (and perhaps solved) the problem.
 
For information on reporting bugs in MyODBC, see ODBC Problems.
 
For solutions to some common problems, see Problems.
 
When answers are sent to you individually and not to the mailing list, it is considered good etiquette to summarise the answers and send the summary to the mailing list so that others may have the benefit of responses you received that helped you solve your problem!
 
Offshore Software Outsourcing company Russia Florida Massachusetts Boston Belarus, Offshore Software Development Services, Offshore Programming and IT OutsourcingOffshore Development, Programming  Services, Tampa FL Russia, E-commerce, Database, CRM, Financial Insurance Health Care Real EstateOffshore Software Development Services, Software Outsourcing Russia
HOME PAGE, Offshore Software Outsourcing Company, offshore IT outsourcing services, offshore 
software development Russia Massachusetts Florida New York CT VT RI software development