The error log contains information indicating when mysqld was started and stopped and also any critical errors that occur while the server is running. If mysqld notices a table that needs to be automatically checked or repaired, it writes a message to the error log.
On some operating systems, the error log contains a stack trace if mysqld dies. The trace can be used to determine where mysqld died. See MySQL Internals: Porting to Other Systems.
In the following discussion, “console” means
stderr, the standard error output; this is your
terminal or console window unless the standard error output has
been redirected. (For example, if invoked with the
--syslog option,
mysqld_safe arranges for the server's
stderr to be sent to the
syslog facility, as described later.)
On Windows, the --log-error and
--console options both affect error
logging:
Without --log-error,
mysqld writes error messages to
in the data directory.
host_name.err
With
--log-error[=,
mysqld writes error messages to an error
log file. The server uses the named file if present, creating
it in in the data directory unless an absolute path name is
given to specify a different directory. If no file is named,
the default name is
file_name]
in the data directory.
host_name.err
If --console is given,
mysqld writes error messages to the
console, unless --log-error is
also given. If both options are present,
--console is ignored and has no
effect. Their order does not matter:
--log-error takes precedence
and error messages go to a log file.
In addition, on Windows, events and error messages are written to
the Windows Event Log within the Application log. Entries marked
as Warning and Note are
written to the Event Log, but not informational messages such as
information statements from individual storage engines. These log
entries have a source of MySQL. You cannot
disable writing information to the Windows Event Log.
On Unix and Unix-like systems, mysqld writes error log messages as follows:
Without --log-error,
mysqld writes error messages to the
console.
With
--log-error[=,
mysqld writes error messages to an error
log file. The server uses the named file if present, creating
it in the data directory unless an absolute path name is given
to specify a different directory. If no file is named, the
default name is
file_name]
in the data directory.
host_name.err
At runtime, log_error system
variable indicates the the error log file name if error output is
written to a file.
If you flush the logs using
FLUSH LOGS or
mysqladmin flush-logs and
mysqld is writing the error log to a file (for
example, if it was started with the
--log-error option), the server
closes and reopens the log file. To rename the file, do so
manually before flushing. Then flushing the logs reopens a new
file with the original file name. For example, you can rename the
file and create a new one using the following commands:
shell>mvshell>host_name.errhost_name.err-oldmysqladmin flush-logsshell>mvhost_name.err-oldbackup-directory
On Windows, use rename rather than mv.
No error log renaming occurs when the logs are flushed if the server is not writing to a named file.
If you use mysqld_safe to start
mysqld, mysqld_safe arranges
for mysqld to write error messages to a log
file or to syslog.
mysqld_safe has three error-logging options,
--syslog,
--skip-syslog,
and --log-error. The default
with no logging options or with
--skip-syslog
is to use the default log file. To explicitly specify use of an
error log file, specify
--log-error=
to mysqld_safe, and
mysqld_safe will arrange for
mysqld to write messages to a log file. To use
file_namesyslog instead, specify the
--syslog option.
If you specify --log-error in an
option file in a [mysqld],
[server], or [mysqld_safe]
section, mysqld_safe will find and use the
option.
If mysqld_safe is used to start
mysqld and mysqld dies
unexpectedly, mysqld_safe notices that it needs
to restart mysqld and writes a
restarted mysqld message to the error log.
The --log-warnings option or
log_warnings system variable can
be used to control warning logging to the error log. The default
value is enabled (1). Warning logging can be disabled using a
value of 0. If the value is greater than 1, aborted connections
are written to the error log, and access-denied errors for new
connection attempts are written. See
Section C.5.2.11, “Communication Errors and Aborted Connections”.