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.
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
mysqld_safe arranges for the server's
stderr to be sent to
as described later.)
If no log file name is specified, the default log file is
in the data directory, unless the
--pid-fileoption is specified. In that case, the default name is the PID file base name with a suffix of
.errin the data directory.
--log-error[=, mysqld writes error messages to an error log file. mysqld writes to 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, mysqld writes to the default log file.
--console, mysqld writes error messages to the console, unless
--log-erroris also given. If both options are present,
--consoleis ignored and has no effect. Their order does not matter:
--log-errortakes precedence and error messages go to a log file. (Before MySQL 5.5.3, if both options are given, the last one takes precedence.)
In addition, on Windows, the server writes events and error
messages to the Windows Event Log within the Application log.
Entries marked as
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:
--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
in the data directory.
It is common for Yum or APT package installations to configure the error log location to be under
/var/logwith an entry like
log-error=/var/log/mysqld.login a server configuration file; removing the file name from the entry reverts the error log file to its default setting, which is
in the data directory.
variable indicates 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 effect is
As of MySQL 5.5.7, 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:
On Windows, use rename rather than mv.
Prior to MySQL 5.5.7, the server renames the current log file with the suffix
-old, then creates a new empty log file. Be aware that a second log-flushing operation thus causes the original error log file to be lost unless you save it under a different name. On Windows, you cannot rename the error log while the server has it open before MySQL 5.5.7. To avoid a restart, flush the logs first to cause the server to rename the original file and create a new one, then save the renamed file. That also works on Unix, or you can use the commands shown earlier.
If the server is not writing to a named file, no error log renaming occurs when the logs are flushed.
If you use mysqld_safe to start
mysqld, mysqld_safe arranges
for mysqld to write error messages to a log
file or to
mysqld_safe has three error-logging options,
--log-error. The default
with no logging options or with
is to use the default log file. To explicitly specify use of an
error log file, specify
to mysqld_safe, and
mysqld_safe will arrange for
mysqld to write messages to a log file. To use
syslog instead, specify 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 B.5.2.11, “Communication Errors and Aborted Connections”.