MySQL是一种常用的数据库管理系统,而操作日志则是MySQL数据库中一个非常重要的部分,它可以记录MySQL数据库中的所有操作,包括增删改查等等。在MySQL数据库中,我们可以通过以下步骤来查看操作日志:
步骤一:配置MySQL操作日志
MySQL的操作日志有两种类型:二进制日志与慢查询日志。为了方便日后检索,我们通常会开启这两种日志。我们可以按照以下步骤来进行配置:
1. 二进制日志
在MySQL的配置文件my.cnf中,可以找到以下内容:
log-bin=mysql-bin
它表示开启MySQL的二进制日志。我们可以修改为:
log-bin=mysql-bin
expire_logs_days=7
max_binlog_size=100M
其中,expire_logs_days=7
表示MySQL的二进制日志会在7天后过期;max_binlog_size=100M
表示单个二进制日志的最大大小为100MB。修改完后,我们需要重启MySQL服务使配置生效。
2. 慢查询日志
如果想要记录慢查询日志,我们可以在MySQL的配置文件my.cnf中添加以下内容:
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
其中,slow_query_log
表示开启慢查询日志;slow_query_log_file
表示慢查询日志文件的存储路径;long_query_time
表示查询时间超过2秒的查询会被记录到慢查询日志中。
步骤二:查看MySQL操作日志
一旦配置好MySQL的日志,我们就可以根据需要查看操作日志了。以下是两个示例:
1. 查看二进制日志
我们可以通过MySQL自带的命令行工具mysqlbinlog来查看二进制日志。以下是一个示例:
mysqlbinlog /var/lib/mysql/mysql-bin.000001
其中,/var/lib/mysql/mysql-bin.000001
为二进制日志文件的路径。执行命令后,我们可以看到该二进制日志中所有的操作记录。类似如下:
#160519 10:55:56 server id 1 end_log_pos 1079 CRC32 0x50e33089 Query thread_id=68 exec_time=0 error_code=0
SET TIMESTAMP=1463664956/*!*/;
insert into test(id,name) values(1,'Alice');
#160519 11:12:18 server id 1 end_log_pos 1190 CRC32 0x42db563f Query thread_id=68 exec_time=0 error_code=0
SET TIMESTAMP=1463665938/*!*/;
delete from test where id=1;
2. 查看慢查询日志
我们可以直接读取慢查询日志文件来查看其中的SQL语句。以下是一个示例:
cat /var/log/mysql/mysql-slow.log
执行命令后,我们可以看到慢查询日志文件中所有的操作记录。类似如下:
# Time: 2018-08-14T16:33:41.159777Z
# User@Host: root[root] @ localhost [] Id: 74
# Query_time: 3.220546 Lock_time: 0.000043 Rows_sent: 0 Rows_examined: 1219320
SET timestamp=1534264421;
SELECT COUNT(*) FROM orders WHERE status=1 AND uid=1;
# Time: 2018-08-14T16:25:12.300129Z
# User@Host: root[root] @ localhost [] Id: 74
# Query_time: 2.397928 Lock_time: 0.000043 Rows_sent: 0 Rows_examined: 1219320
SET timestamp=1534263912;
SELECT COUNT(*) FROM orders WHERE status=1 AND uid=1;
通过查看慢查询日志,我们可以发现哪些查询执行的比较慢,以便我们进行优化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MYSQL如何查看操作日志详解 - Python技术站