(mysql.info) using-log-files
Info Catalog
(mysql.info) using-stack-trace
(mysql.info) debugging-server
(mysql.info) reproducible-test-case
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 `myisamchk'. See 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.
See explain.
You can find the queries that take a long time to execute by starting
`mysqld' with -log-slow-queries. See 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' (see 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 `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. See server-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.
Info Catalog
(mysql.info) using-stack-trace
(mysql.info) debugging-server
(mysql.info) reproducible-test-case
automatically generated byinfo2html