概述
错误日志包含mysqld 启动和关闭时间的记录。它还包含诊断消息,如服务器启动和关闭期间以及服务器运行期间发生的错误,警告和注释。例如,如果mysqld注意到需要自动检查或修复表,它会向错误日志写入消息。
用于启动和管理mysqld服务的mysqld_safe进程会将消息写入错误日志中。例如,当mysqld_safe发现异常mysqld退出时,它会重新启动 mysqld并将mysqld restarted消息写入错误日志。
UNIX和类UNIX系统错误日记记录
在Unix和类Unix系统上,mysqld使用该–log-error选项来确定mysqld是否将错误日志写入控制台或文件,并且如果是文件,则使用文件名:
如果–log-error没有给出, mysqld将错误日志写入控制台。
如果–log-error没有命名文件,mysqld会将错误日志写入host_name.err 数据目录中指定的文件 。
如果–log-error命名文件,mysqld将错误日志写入该.err数据目录下的该文件(如果该名称没有后缀,则添加后缀),除非给出绝对路径名来指定不同的位置。
如果–log-error在选项文件中给定的[mysqld], [server]或 [mysqld_safe]部分, mysqld_safe的查找和使用的选项,并将其传递到mysqld的。
如果服务器将错误日志写入控制台,它会将 log_error系统变量设置为 stderr。否则,服务器将错误日志写入文件并设置 log_error为文件名。
将错误日志记录到系统日志
可以让mysqld将错误日志写入系统日志。为此,请使用这些系统变量:
log_syslog:启用此变量将错误日志发送到系统日志。
如果log_syslog启用,则还可以使用以下系统变量进行更精细的控制。
log_syslog_facility:syslog消息的默认设施是 daemon。设置这个变量来指定一个不同的设施。
log_syslog_include_pid:是否在每行syslog输出中包含服务器进程ID 。
log_syslog_tag:这个变量定义了一个标签添加到 消息中的服务器标识符(mysqld)syslog。如果已定义,则标记将通过前导连字符附加到标识符上。
在Unix和类Unix系统上,输出控制 syslog也可以使用 mysqld_safe,它可以捕获服务器错误输出并将其传递给syslog。
错误日志消息格式
包含在错误日志消息中的ID是负责写入消息的mysqld内的线程的ID 。这表明服务器的哪个部分生成了消息,并且与一般查询日志和慢查询日志消息(包括连接线程ID)一致。
该log_timestamps系统变量控制时间戳的写入错误日志消息(以及一般查询日志和慢查询日志文件)的时区。允许的值是 UTC(默认)和 SYSTEM(本地系统时区)。
错误日志文件刷新和日志分割
如果使用FLUSH ERROR LOGS,FLUSH LOGS或 mysqladmin flush-logs刷新日志,服务器将关闭并重新打开其写入的任何错误日志文件。
要重命名错误日志文件,请在刷新之前手动执行。刷新日志然后用原始文件名打开一个新文件。
例如,假设日志文件名称为 host_name.err,要重命名该文件并创建一个新文件,请使用以下命令:
mv host_name.err host_name.err-old
mysqladmin flush-logs
mv host_name.err-old backup-directory