(mysql.info.gz) Using log files
Info Catalog
(mysql.info.gz) Using stack trace
(mysql.info.gz) Debugging server
(mysql.info.gz) Reproduceable test case
E.1.5 Using Log Files to Find Cause of Errors in `mysqld'
---------------------------------------------------------
Note that before starting `mysqld' with `--log' you should check all
your tables with `myisamchk'. MySQL Database Administration.
If `mysqld' dies or hangs, you should start `mysqld' with `--log'.
When `mysqld' dies again, you can examine the end of the log file for
the query that killed `mysqld'.
If you are using `--log' without a file name, the log is stored in the
database directory as `HOST_NAME.log' In 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.
`EXPLAIN' EXPLAIN.
You can find the queries that take a long time to execute by starting
`mysqld' with `--log-slow-queries'. 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 `myisamchk' ( MySQL Database Administration), and test the
queries in the MySQL log files to see if one doesn't work. 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 will
automatically check and try to repair `MyISAM' tables if they are
marked as 'not closed properly' or 'crashed'. If this happens, MySQL
will write an entry in the `hostname.err' file `'Warning: Checking
table ...'' which is followed by `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. Server options.
It's not a good sign if `mysqld' did died unexpectedly, but in this
case one shouldn't investigate the `Checking table...' messages but
instead try to find out why `mysqld' died.
Info Catalog
(mysql.info.gz) Using stack trace
(mysql.info.gz) Debugging server
(mysql.info.gz) Reproduceable test case
automatically generated byinfo2html