E.1.5. Using Server Logs to Find Causes of Errors in mysqld
Note that before starting mysqld with
--log you should check all your tables with
Chapter 5, Database Administration.
If mysqld dies or hangs, you should start
mysqld dies again, you can examine the end of
the log file for the query that killed
If you are using
--log without a file name, the
log is stored in the database directory as
most cases it is the last query in the log file that killed
mysqld, but if possible you should verify
this by restarting mysqld and executing the
found query from the mysql command-line
tools. If this works, you should also test all complicated
queries that didn't complete.
You can also try the command
EXPLAIN on all
SELECT statements that takes a long time to
ensure that mysqld is using indexes properly.
See Section 7.2.1, “Optimizing Queries with
You can find the queries that take a long time to execute by
starting mysqld with
Section 5.11.5, “The Slow Query Log”.
If you find the text
mysqld restarted in the
error log file (normally named
hostname.err) you probably have found a
query that causes mysqld to fail. If this
happens, you should check all your tables with
Chapter 5, Database Administration), and test the queries
in the MySQL log files to see whether one fails. If you find
such a query, try first upgrading to the newest MySQL version.
If this doesn't help and you can't find anything in the
mysql mail archive, you should report the bug
to a MySQL mailing list. The mailing lists are described at
http://lists.mysql.com/, which also has links to
online list archives.
If you have started mysqld with
myisam-recover, MySQL automatically checks
and tries to repair
MyISAM tables if they are
marked as 'not closed properly' or 'crashed'. If this happens,
MySQL writes an entry in the
'Warning: Checking table ...' which is
Warning: Repairing table if the
table needs to be repaired. If you get a lot of these errors,
without mysqld having died unexpectedly just
before, then something is wrong and needs to be investigated
further. See Section 5.2.1, “mysqld Command Options”.
It is not a good sign if mysqld did die
unexpectedly, but in this case, you should not investigate the
Checking table... messages, but instead try
to find out why mysqld died.