<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="bug-reports">
      </a>
      1.6 How to Report Bugs or Problems
     </h2>
    </div>
   </div>
  </div>
  <a class="indexterm" name="idm46045333723392">
  </a>
  <a class="indexterm" name="idm46045333721968">
  </a>
  <a class="indexterm" name="idm46045333720480">
  </a>
  <a class="indexterm" name="idm46045333718992">
  </a>
  <a class="indexterm" name="idm46045333717504">
  </a>
  <a class="indexterm" name="idm46045333716016">
  </a>
  <a class="indexterm" name="idm46045333714528">
  </a>
  <a class="indexterm" name="idm46045333713040">
  </a>
  <a class="indexterm" name="idm46045333711552">
  </a>
  <a class="indexterm" name="idm46045333710480">
  </a>
  <p>
   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:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      Start by searching the MySQL online manual at
      <a class="ulink" href="/doc/" target="_top">
       https://dev.mysql.com/doc/
      </a>
      . We try to keep the manual up to
        date by updating it frequently with solutions to newly found
        problems. In addition, the release notes accompanying the manual
        can be particularly useful since it is quite possible that a
        newer version contains a solution to your problem. The release
        notes are available at the location just given for the manual.
     </p>
    </li>
    <li class="listitem">
     <p>
      If you get a parse error for an SQL statement, please check your
        syntax closely. If you cannot find something wrong with it, it
        is extremely likely that your current version of MySQL Server
        doesn't support the syntax you are using. If you are using the
        current version and the manual doesn't cover the syntax that you
        are using, MySQL Server doesn't support your statement.
     </p>
     <p>
      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.
     </p>
    </li>
    <li class="listitem">
     <p>
      For solutions to some common problems, see
      <a class="xref" href="problems.html" title="B.3 Problems and Common Errors">
       Section B.3, “Problems and Common Errors”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Search the bugs database at
      <a class="ulink" href="http://bugs.mysql.com/" target="_blank">
       http://bugs.mysql.com/
      </a>
      to see whether the bug has
        been reported and fixed.
     </p>
    </li>
    <li class="listitem">
     <p>
      You can also use
      <a class="ulink" href="http://www.mysql.com/search/" target="_blank">
       http://www.mysql.com/search/
      </a>
      to
        search all the Web pages (including the manual) that are located
        at the MySQL website.
     </p>
    </li>
   </ul>
  </div>
  <p>
   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.
  </p>
  <p>
   The normal way to report bugs is to visit
   <a class="ulink" href="http://bugs.mysql.com/" target="_blank">
    http://bugs.mysql.com/
   </a>
   , which is the address for our
    bugs database. This database is public and can be browsed and
    searched by anyone. If you log in to the system, you can enter new
    reports.
  </p>
  <p>
   Bugs posted in the bugs database at
   <a class="ulink" href="http://bugs.mysql.com/" target="_blank">
    http://bugs.mysql.com/
   </a>
   that are corrected for a given
    release are noted in the release notes.
  </p>
  <p>
   If you find a security bug in MySQL Server, please let us know
    immediately by sending an email message to
   <code class="email">
    &lt;
    <a class="email" href="mailto:secalert_us@oracle.com">
     secalert_us@oracle.com
    </a>
    &gt;
   </code>
   . Exception: Support customers
    should report all problems, including security bugs, to Oracle
    Support at
   <a class="ulink" href="http://support.oracle.com/" target="_blank">
    http://support.oracle.com/
   </a>
   .
  </p>
  <p>
   To discuss problems with other users, you can use the
   <a class="ulink" href="https://mysqlcommunity.slack.com/" target="_blank">
    MySQL Community
    Slack
   </a>
   .
  </p>
  <p>
   Writing a good bug report takes patience, but doing it right the
    first time saves time both for us and for yourself. 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. 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.
  </p>
  <p>
   Preferably, you should test the problem using the latest production
    or development version of MySQL Server before posting. Anyone should
    be able to repeat the bug by just using
   <code class="literal">
    mysql test &lt;
    script_file
   </code>
   on your test case or by running the shell or
    Perl script that you include in the bug report. Any bug that we are
    able to repeat has a high chance of being fixed in the next MySQL
    release.
  </p>
  <p>
   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
   <a class="xref" href="debugging-mysql.html" title="7.9 Debugging MySQL">
    Section 7.9, “Debugging MySQL”
   </a>
   .
  </p>
  <p>
   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.
  </p>
  <p>
   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). 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,
   <span class="quote">
    “
    <span class="quote">
     Why doesn't this work for me?
    </span>
    ”
   </span>
   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.
    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.
  </p>
  <p>
   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.
  </p>
  <p>
   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.
  </p>
  <p>
   If you have a problem with Connector/ODBC (MyODBC), please try to
    generate a trace file and send it with your report. See
   <a class="ulink" href="/doc/connector-odbc/en/connector-odbc-support-bug-report.html" target="_top">
    How to Report Connector/ODBC Problems or Bugs
   </a>
   .
  </p>
  <p>
   If your report includes long query output lines from test cases that
    you run with the
   <a class="link" href="mysql.html" title="6.5.1 mysql — The MySQL Command-Line Client">
    <span class="command">
     <strong>
      mysql
     </strong>
    </span>
   </a>
   command-line tool, you can
    make the output more readable by using the
   <a class="link" href="mysql-command-options.html#option_mysql_vertical">
    <code class="option">
     --vertical
    </code>
   </a>
   option or the
   <code class="literal">
    \G
   </code>
   statement terminator. The
   <a class="link" href="explain.html" title="15.8.2 EXPLAIN Statement">
    <code class="literal">
     EXPLAIN SELECT
    </code>
   </a>
   example later in this section demonstrates the use of
   <code class="literal">
    \G
   </code>
   .
  </p>
  <p>
   Please include the following information in your report:
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      The version number of the MySQL distribution you are using (for
        example, MySQL 5.7.10). You can find out which version you are
        running by executing
      <a class="link" href="mysqladmin.html" title="6.5.2 mysqladmin — A MySQL Server Administration Program">
       <span class="command">
        <strong>
         mysqladmin version
        </strong>
       </span>
      </a>
      . The
      <a class="link" href="mysqladmin.html" title="6.5.2 mysqladmin — A MySQL Server Administration Program">
       <span class="command">
        <strong>
         mysqladmin
        </strong>
       </span>
      </a>
      program can be found in the
      <code class="filename">
       bin
      </code>
      directory under your MySQL installation
        directory.
     </p>
    </li>
    <li class="listitem">
     <p>
      The manufacturer and model of the machine on which you
        experience the problem.
     </p>
    </li>
    <li class="listitem">
     <p>
      The operating system name and version. If you work with Windows,
        you can usually get the name and version number by
        double-clicking your My Computer icon and pulling down the
      <span class="quote">
       “
       <span class="quote">
        Help/About Windows
       </span>
       ”
      </span>
      menu. For most Unix-like
        operating systems, you can get this information by executing the
        command
      <code class="literal">
       uname -a
      </code>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      Sometimes the amount of memory (real and virtual) is relevant.
        If in doubt, include these values.
     </p>
    </li>
    <li class="listitem">
     <p>
      The contents of the
      <code class="filename">
       docs/INFO_BIN
      </code>
      file from
        your MySQL installation. This file contains information about
        how MySQL was configured and compiled.
     </p>
     <a class="indexterm" name="idm46045333669424">
     </a>
    </li>
    <li class="listitem">
     <p>
      If you are using a source distribution of the MySQL software,
        include the name and version number of the compiler that you
        used. If you have a binary distribution, include the
        distribution name.
     </p>
    </li>
    <li class="listitem">
     <p>
      If the problem occurs during compilation, include the exact
        error messages and also a few lines of context around the
        offending code in the file where the error occurs.
     </p>
    </li>
    <li class="listitem">
     <p>
      If
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      died, you should also report the
        statement that caused
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      to unexpectedly
        exit. You can usually get this information by running
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      with query logging enabled, and then
        looking in the log after
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      exits. See
      <a class="xref" href="debugging-mysql.html" title="7.9 Debugging MySQL">
       Section 7.9, “Debugging MySQL”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      If a database table is related to the problem, include the
        output from the
      <code class="literal">
       SHOW CREATE TABLE
       <em class="replaceable">
        <code>
         db_name
        </code>
       </em>
       .
       <em class="replaceable">
        <code>
         tbl_name
        </code>
       </em>
      </code>
      statement in the bug report. This is a very easy way to get the
        definition of any table in a database. The information helps us
        create a situation matching the one that you have experienced.
     </p>
    </li>
    <li class="listitem">
     <p>
      The SQL mode in effect when the problem occurred can be
        significant, so please report the value of the
      <a class="link" href="server-system-variables.html#sysvar_sql_mode">
       <code class="literal">
        sql_mode
       </code>
      </a>
      system variable. For
        stored procedure, stored function, and trigger objects, the
        relevant
      <a class="link" href="server-system-variables.html#sysvar_sql_mode">
       <code class="literal">
        sql_mode
       </code>
      </a>
      value is the
        one in effect when the object was created. For a stored
        procedure or function, the
      <a class="link" href="show-create-procedure.html" title="15.7.7.10 SHOW CREATE PROCEDURE Statement">
       <code class="literal">
        SHOW CREATE
        PROCEDURE
       </code>
      </a>
      or
      <a class="link" href="show-create-function.html" title="15.7.7.9 SHOW CREATE FUNCTION Statement">
       <code class="literal">
        SHOW CREATE
        FUNCTION
       </code>
      </a>
      statement shows the relevant SQL mode, or you
        can query
      <code class="literal">
       INFORMATION_SCHEMA
      </code>
      for the
        information:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa93560835"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SELECT</span> ROUTINE_SCHEMA<span class="token punctuation">,</span> ROUTINE_NAME<span class="token punctuation">,</span> SQL_MODE
<span class="token keyword">FROM</span> INFORMATION_SCHEMA<span class="token punctuation">.</span>ROUTINES<span class="token punctuation">;</span></code></pre>
     </div>
     <p>
      For triggers, you can use this statement:
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa62381075"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SELECT</span> EVENT_OBJECT_SCHEMA<span class="token punctuation">,</span> EVENT_OBJECT_TABLE<span class="token punctuation">,</span> TRIGGER_NAME<span class="token punctuation">,</span> SQL_MODE
<span class="token keyword">FROM</span> INFORMATION_SCHEMA<span class="token punctuation">.</span><span class="token keyword">TRIGGERS</span><span class="token punctuation">;</span></code></pre>
     </div>
    </li>
    <li class="listitem">
     <p>
      For performance-related bugs or problems with
      <a class="link" href="select.html" title="15.2.13 SELECT Statement">
       <code class="literal">
        SELECT
       </code>
      </a>
      statements, you should
        always include the output of
      <code class="literal">
       EXPLAIN SELECT
        ...
      </code>
      , and at least the number of rows that the
      <a class="link" href="select.html" title="15.2.13 SELECT Statement">
       <code class="literal">
        SELECT
       </code>
      </a>
      statement produces. You
        should also include the output from
      <code class="literal">
       SHOW CREATE TABLE
       <em class="replaceable">
        <code>
         tbl_name
        </code>
       </em>
      </code>
      for each table
        that is involved. The more information you provide about your
        situation, the more likely it is that someone can help you.
     </p>
     <p>
      The following is an example of a very good bug report. The
        statements are run using the
      <a class="link" href="mysql.html" title="6.5.1 mysql — The MySQL Command-Line Client">
       <span class="command">
        <strong>
         mysql
        </strong>
       </span>
      </a>
      command-line tool. Note the use of the
      <code class="literal">
       \G
      </code>
      statement terminator for statements that would otherwise provide
        very long output lines that are difficult to read.
     </p>
     <div class="copytoclipboard-wrapper">
      <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa54150033"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">VARIABLES</span><span class="token punctuation">;</span>
<span class="token prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">COLUMNS</span> <span class="token keyword">FROM</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\G
       <span class="token operator"></span><em class="replaceable"><span class="token operator">&lt;</span>output <span class="token keyword">from</span> <span class="token keyword">SHOW</span> <span class="token keyword">COLUMNS</span><span class="token operator">&gt;</span></em><span class="token operator"></span>
<span class="token prompt">mysql&gt;</span> <span class="token keyword">EXPLAIN</span> <span class="token keyword">SELECT</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>\G
       <span class="token operator"></span><em class="replaceable"><span class="token operator">&lt;</span>output <span class="token keyword">from</span> <span class="token keyword">EXPLAIN</span><span class="token operator">&gt;</span></em><span class="token operator"></span>
<span class="token prompt">mysql&gt;</span> <span class="token keyword">FLUSH</span> <span class="token keyword">STATUS</span><span class="token punctuation">;</span>
<span class="token prompt">mysql&gt;</span> <span class="token keyword">SELECT</span> <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">;</span>
       <span class="token operator"></span><em class="replaceable"><span class="token operator">&lt;</span>A short version <span class="token keyword">of</span> the output <span class="token keyword">from</span> <span class="token keyword">SELECT</span><span class="token punctuation">,</span>
       including the <span class="token datatype">time</span> taken <span class="token keyword">to</span> run the <span class="token keyword">query</span><span class="token operator">&gt;</span></em><span class="token operator"></span>
<span class="token prompt">mysql&gt;</span> <span class="token keyword">SHOW</span> <span class="token keyword">STATUS</span><span class="token punctuation">;</span>
       <span class="token operator"></span><em class="replaceable"><span class="token operator">&lt;</span>output <span class="token keyword">from</span> <span class="token keyword">SHOW</span> <span class="token keyword">STATUS</span><span class="token operator">&gt;</span></em><span class="token operator"></span></code></pre>
     </div>
    </li>
    <li class="listitem">
     <p>
      If a bug or problem occurs while running
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      , try to provide an input script that
        reproduces 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 reproducible test case,
        you should upload it to be attached to the bug report.
     </p>
     <p>
      If you cannot provide a script, you should at least include the
        output from
      <a class="link" href="mysqladmin.html" title="6.5.2 mysqladmin — A MySQL Server Administration Program">
       <span class="command">
        <strong>
         mysqladmin variables extended-status
        processlist
        </strong>
       </span>
      </a>
      in your report to provide some information
        on how your system is performing.
     </p>
    </li>
    <li class="listitem">
     <p>
      If you cannot produce a test case with only a few rows, or if
        the test table is too big to be included in the bug report (more
        than 10 rows), you should dump your tables using
      <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
       <span class="command">
        <strong>
         mysqldump
        </strong>
       </span>
      </a>
      and create a
      <code class="filename">
       README
      </code>
      file that describes your problem.
        Create a compressed archive of your files using
      <span class="command">
       <strong>
        tar
       </strong>
      </span>
      and
      <span class="command">
       <strong>
        gzip
       </strong>
      </span>
      or
      <span class="command">
       <strong>
        zip
       </strong>
      </span>
      . After you initiate a bug report for our
        bugs database at
      <a class="ulink" href="http://bugs.mysql.com/" target="_blank">
       http://bugs.mysql.com/
      </a>
      , click
        the Files tab in the bug report for instructions on uploading
        the archive to the bugs database.
     </p>
    </li>
    <li class="listitem">
     <p>
      If you believe that the MySQL server produces a strange result
        from a statement, include not only the result, but also your
        opinion of what the result should be, and an explanation
        describing the basis for your opinion.
     </p>
    </li>
    <li class="listitem">
     <p>
      When you provide an example of the problem, it is better to use
        the table names, variable names, and so forth that exist in your
        actual situation than to come up with new names. The problem
        could be related to the name of a table or variable. 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. If
        you have data that you do not want to be visible to others in
        the bug report, you can upload it using the Files tab as
        previously described. If the information is really top secret
        and you do not want to show it even to us, go ahead and provide
        an example using other names, but please regard this as the last
        choice.
     </p>
    </li>
    <li class="listitem">
     <p>
      Include all the options given to the relevant programs, if
        possible. For example, indicate the options that you use when
        you start the
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      server, as well as the
        options that you use to run any MySQL client programs. The
        options to programs such as
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      and
      <a class="link" href="mysql.html" title="6.5.1 mysql — The MySQL Command-Line Client">
       <span class="command">
        <strong>
         mysql
        </strong>
       </span>
      </a>
      , and to the
      <span class="command">
       <strong>
        configure
       </strong>
      </span>
      script, are often key to resolving
        problems and are very relevant. It is never a bad idea to
        include them. If your problem involves a program written in a
        language such as Perl or PHP, please include the language
        processor's version number, as well as the version for any
        modules that the program uses. For example, if you have a Perl
        script that uses the
      <code class="literal">
       DBI
      </code>
      and
      <code class="literal">
       DBD::mysql
      </code>
      modules, include the version
        numbers for Perl,
      <code class="literal">
       DBI
      </code>
      , and
      <code class="literal">
       DBD::mysql
      </code>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      If your question is related to the privilege system, please
        include the output of
      <a class="link" href="mysqladmin.html" title="6.5.2 mysqladmin — A MySQL Server Administration Program">
       <span class="command">
        <strong>
         mysqladmin reload
        </strong>
       </span>
      </a>
      , and
        all the error messages you get when trying to connect. When you
        test your privileges, you should execute
      <a class="link" href="mysqladmin.html" title="6.5.2 mysqladmin — A MySQL Server Administration Program">
       <span class="command">
        <strong>
         mysqladmin
        reload version
        </strong>
       </span>
      </a>
      and try to connect with the program
        that gives you trouble.
     </p>
    </li>
    <li class="listitem">
     <p>
      If you have a patch for a bug, do include it. But do not assume
        that the patch is all we need, or that we can use it, if you do
        not 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
        cannot use it.
     </p>
     <p>
      If we cannot verify the exact purpose of the patch, we will not
        use it. Test cases help us here. Show that the patch handles all
        the situations that may occur. If we find a borderline case
        (even a rare one) where the patch will not work, it may be
        useless.
     </p>
    </li>
    <li class="listitem">
     <p>
      Guesses about what the bug is, why it occurs, or what it depends
        on are usually wrong. Even the MySQL team cannot guess such
        things without first using a debugger to determine the real
        cause of a bug.
     </p>
    </li>
    <li class="listitem">
     <p>
      Indicate in your bug report that you have checked the reference
        manual and mail archive so that others know you have tried to
        solve the problem yourself.
     </p>
    </li>
    <li class="listitem">
     <p>
      If your data appears corrupt or you get errors when you access a
        particular table, first check your tables with
      <a class="link" href="check-table.html" title="15.7.3.2 CHECK TABLE Statement">
       <code class="literal">
        CHECK TABLE
       </code>
      </a>
      . If that statement
        reports any errors:
     </p>
     <div class="itemizedlist">
      <ul class="itemizedlist" style="list-style-type: circle; ">
       <li class="listitem">
        <p>
         The
         <code class="literal">
          InnoDB
         </code>
         crash recovery mechanism
            handles cleanup when the server is restarted after being
            killed, so in typical operation there is no need to
         <span class="quote">
          “
          <span class="quote">
           repair
          </span>
          ”
         </span>
         tables. If you encounter an error with
         <code class="literal">
          InnoDB
         </code>
         tables, restart the server and see
            whether the problem persists, or whether the error affected
            only cached data in memory. If data is corrupted on disk,
            consider restarting with the
         <a class="link" href="innodb-parameters.html#sysvar_innodb_force_recovery">
          <code class="literal">
           innodb_force_recovery
          </code>
         </a>
         option enabled so that you can dump the affected tables.
        </p>
       </li>
       <li class="listitem">
        <p>
         For non-transactional tables, try to repair them with
         <a class="link" href="repair-table.html" title="15.7.3.5 REPAIR TABLE Statement">
          <code class="literal">
           REPAIR TABLE
          </code>
         </a>
         or with
         <a class="link" href="myisamchk.html" title="6.6.4 myisamchk — MyISAM Table-Maintenance Utility">
          <span class="command">
           <strong>
            myisamchk
           </strong>
          </span>
         </a>
         . See
         <a class="xref" href="server-administration.html" title="Chapter 7 MySQL Server Administration">
          Chapter 7,
          <i>
           MySQL Server Administration
          </i>
         </a>
         .
        </p>
       </li>
      </ul>
     </div>
     <p>
      If you are running Windows, please verify the value of
      <a class="link" href="server-system-variables.html#sysvar_lower_case_table_names">
       <code class="literal">
        lower_case_table_names
       </code>
      </a>
      using
        the
      <code class="literal">
       SHOW VARIABLES LIKE
        'lower_case_table_names'
      </code>
      statement. This variable
        affects how the server handles lettercase of database and table
        names. Its effect for a given value should be as described in
      <a class="xref" href="identifier-case-sensitivity.html" title="11.2.3 Identifier Case Sensitivity">
       Section 11.2.3, “Identifier Case Sensitivity”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      If you often get corrupted tables, you should try to find out
        when and why this happens. In this case, the error log in the
        MySQL data directory may contain some information about what
        happened. (This is the file with the
      <code class="filename">
       .err
      </code>
      suffix in the name.) See
      <a class="xref" href="error-log.html" title="7.4.2 The Error Log">
       Section 7.4.2, “The Error Log”
      </a>
      . Please
        include any relevant information from this file in your bug
        report. Normally
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      should
      <span class="emphasis">
       <em>
        never
       </em>
      </span>
      corrupt a table if nothing killed it
        in the middle of an update. If you can find the cause of
      <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
       <span class="command">
        <strong>
         mysqld
        </strong>
       </span>
      </a>
      dying, it is much easier for us to
        provide you with a fix for the problem. See
      <a class="xref" href="what-is-crashing.html" title="B.3.1 How to Determine What Is Causing a Problem">
       Section B.3.1, “How to Determine What Is Causing a Problem”
      </a>
      .
     </p>
    </li>
    <li class="listitem">
     <p>
      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 difficulty. See
      <a class="xref" href="which-version.html" title="2.1.2 Which MySQL Version and Distribution to Install">
       Section 2.1.2, “Which MySQL Version and Distribution to Install”
      </a>
      .
     </p>
    </li>
   </ul>
  </div>
 </div>
 <br/>
</div>
