MySQL 日志

MySQL日志记录了MySQL数据库日常操作和错误信息。MySQL有不同类型的日志文件(各自存储了不同类型的日志),从日志当中可以查询到MySQL数据库的运行情况、用户的操作、错误的信息等。

MySQL的日志分为以下四大类:

错误日志:记录mysql服务的启动,运行或停止mysql服务时出现的问题;
查询日志:记录建立的客户端的连接和执行的语句;
二进制日志:记录所有更改数据的语句,可以用于数据的复制;
慢查询日志:记录所有执行的时间超过long_query_time的所有查询或不使用索引的查询;

默认情况下,所有日志创建于MySQL数据目录中,通过刷新日志,可以强制MySQL关闭和重新打开日志文件,Flush logs刷新日志或者执行mysqladmin flush-logs 如果正使用MySQL复制功能,在复制服务器上可以维护更多日志文件,这种日志我们称为接替日志。启动日志功能会降低MySQL数据库的性能。
1)查看系统设置

#查看全局的系统状态
mysql> show global variables\G
mysql> show global variables like '%log%';
#查看当前会话的系统状态
mysql> show session variables\G
mysql> show session variables like '%log%';

若要修改上面查看出来的参数,可以在MySQL的主配置文件中的mysqld字段中写入即可,如:binlog_cache_size = 1M。又或者可以在MySQL数据库中进行临时修改:set global binlog_cache_size = 1048576,这种临时修改在MySQL重启后就会失效。
2)查看运行状态

#查看全局的运行状态=
mysql> show global status\G
#查看当前会话的运行状态
mysql> show session status;
#查看MySQL的版本
[root@mysql ~]# mysql -V
mysql> status;
mysql> select version();

1、错误日志
在mysql数据库中,错误日志功能是默认开启的。默认情况下,错误日志存储在mysql数据库的数据目录中。错误日志文件通常的名称为hostname.err。其中,hostname表示服务器主机名。 错误日志信息可以自己进行配置的,错误日志所记录的信息是可以通过log-error和log-warnings来定义的,其中log-error是定义是否启用错误日志的功能和错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。默认情况下错误日志大概记录以下几个方面的信息:服务器启动和关闭过程中的信息(未必是错误信息,如mysql如何启动InnoDB的表空间文件的、如何初始化自己的存储引擎的等等)、服务器运行过程中的错误信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的信息,MySQL有很多系统变量可以设置,系统变量设置不同,会导致系统运行状态的不同。因此mysql提供两组命令,分别查看系统设置和运行状态。

一般而言,日志级别的定义没有会话变量都只是在全局级别下定义错误日志的状态:

mysql> show global variables like '%log_error%';
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| binlog_error_action | ABORT_SERVER                    |
| log_error           | /usr/local/mysql/data/mysql.err |
| log_error_verbosity | 3                               |
+---------------------+---------------------------------+
3 rows in set (0.00 sec)

其中 log_error定义为错误日志文件路径 ,log_error_verbosity值得含义如下:

Verbosity	Message
1	Error only
2	Error and warnings
3	Errors, warnings,and notes(default)

错误日志的存放路径在my.cnf的主配置文件中指定,如下:

[root@mysql ~]# cat /etc/my.cnf 
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysql.pid
socket=/usr/local/mysql/mysql.sock
log-error=/usr/local/mysql/data/mysql.err               # 此行定义错误日志位置

为了方便维护需要,有时候会希望将错误日志中的内容做备份并重新开始记录,这时候就可以利用MySQL 的FLUSH LOGS 命令来告诉MySQL 备份旧日志文件并生成新的日志文件。备份文件名以“.old”结尾。
删除错误日志
在mysql5.5.7之前:数据库管理员可以删除很长时间之前的错误日志,以保证mysql服务器上的硬盘空间。mysql数据库中,可以使用mysqladmin命令开启新的错误日志。mysqladmin命令的语法如下:mysqladmin –u root –p flush-logs也可以登录mysql数据库中使用FLUSH LOGS语句来开启新的错误日志。 在mysql5.5.7之后:服务器将关闭此项功能。只能使用重命名原来的错误日志文件,手动冲洗日志创建一个新的,方式如下:

[
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值