mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述
在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志。这此日志记录着数据库在不同方面的踪迹(区别sql server里只有errorlog日志,并借助了dmv来做分析)。接下来几篇里详细介绍这几种日志的作用和使用方法,利用这些日志做好维护和调优。
错误日志是mysql中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。
在my.cnf配置文件里可以用log-error[=file_name]参数来指定mysqld保存错误日志文件的位置。如果没有指定file_name值,mysqld使用的错误日志名host_name.err(本机名.err)。
我电脑上二进制安装的mysql,在my.cnf中配置errorlog路径如下:
在rpm包安装中,my.cnf中配置errorlog路径如下:
上面二种安装都是将mysql的log-error日志生成在 /var/log 目录下(是系统日志存放的地方,只有 root 账号有写权限),需要 MySQL 进程对这个目录有读写权限。在二进制安装中有对/var/log/mariadb 赋予mysql用户权限。
1.1通过环境变量来查看位置
SHOW VARIABLES LIKE 'log_error'
1.2 下面在二进制安装环境下,尝试下日志权限
先停掉服务,将错误日志文件删除
用root用户重启服务,提示只能用mysql用户创建该文件,使用su切换到mysql,再启动服务成功
如下启动成功,错误日志文件产生
查看错误日志如下:
二 错误日志归档备份(有问题,以后在了解)
错误日志如果不清理或删除,那么它会一直增长(在sqlserver里会自动保留前6个errorlog日志,不必重启服务)。 在mysql 5.7之后,只能通过下面方式来归档,备份错误日志。
下面的错误日志信息已达到26 M,如下所示:
-- 归档如下:
在第二步将所有日志刷新到磁盘上时,输入密码会卡死无响应(以后在查其原因)。 上面是将错误日志备份为logbak文件后, 重启系统和服务将产生新的mysqld.log日志