mysql日志文件的使用Word文档格式.docx
- 文档编号:15691446
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:10
- 大小:38.22KB
mysql日志文件的使用Word文档格式.docx
《mysql日志文件的使用Word文档格式.docx》由会员分享,可在线阅读,更多相关《mysql日志文件的使用Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
6.超时日志(Theslowlog):
记录所有执行时间超过最大SQL执行时间(long_query_time)或未使用索引的语句;
7.relaylog:
如果你是在用mysql的复制、备份功能,那么从服务器还提供了一种叫做relaylog的日志文件。
默认情况下所有日志文件会记录在MYSQL的数据目录下,你可以通过强制mysql去关闭并重新打开一个文件进行日志记录,当然系统会自动加后缀(如.00001,.00002),方式有在mysql环境下执行语句mysql>
flushlogs;
或者通过mysqladmin管理程序执行#mysqladminflush-logs或#mysqladminrefresh
二、mysql日志的配置
这些日志的启动方式可以在mysqld_safe方式启动数据库的时候,后面跟选项参数,也可以在配置文件里配置
配置文件配置
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
参数配置:
在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了。
#Enteranamefortheslowquerylogfile.Otherwiseadefaultnamewillbeused.慢查询日志
#log-slow-queries=
#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.
log-bin=
#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.
#log=
#Enteranamefortheerrorlogfile.Otherwiseadefaultnamewillbeused.
log-error=
#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.
#log-update=
三、mysql日志的查看
日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:
1.首先确定是否开启了二进制文件记录功能
Sql代码
mysql>
showvariableslike'
log_bin'
;
上面只开启了错误日志,要开其他的日志就把前面的“#”去掉(参数)
查看命令:
①showvariableslike'
log_%'
查看所有的log命令
②showvariableslike'
查看具体的log命令
2.如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:
showmasterstatus;
3.查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。
mysqlbinlog/var/log/mysql/mysql-bin.000040;
4.将二进制日志文件导出txt文本文件查看
mysqlbinlog/var/log/mysql/mysql-bin.000040>
/var/log/mysql/000040.txt;
5.查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:
-):
mysqlbinlog--start-datetime='
2008-01-0100:
00:
00'
--stop-datetime='
2008-08-0800:
/var/log/mysql/mysql-bin.000040>
./tmp.log
四、使用二进制日志恢复数据
mysqlbinlog工具的使用,大家可以看MySQL的帮助手册,里面有详细的用。
在这个例子中,重点是--start-position参数和--stop-position参数的使用。
--start-position=N:
从二进制日志中位置等于N参量时的事件开始读。
--stop-position=N:
从二进制日志中位置等于和大于N参量时的事件起停止读。
1.创建实验环境
在一测试数据库里,创建一个表,并添加记录,然后产生日志文件。
createtabletest(idintauto_incrementnotnullprimarykey,valint,datavarchar(20));
mysql>
insertintotest(val,data)values(10,'
liang'
);
QueryOK,1rowaffected(0.03sec)
insertintotest(val,data)values(20,'
jia'
QueryOK,1rowaffected(0.08sec)
insertintotest(val,data)values(30,'
hui'
flushlogs;
--产生第二个日志文件
QueryOK,0rowsaffected(0.09sec)
insertintotest(val,data)values(40,'
aaa'
QueryOK,1rowaffected(0.05sec)
insertintotest(val,data)values(50,'
bbb'
insertintotest(val,data)values(60,'
ccc'
deletefromtestwhereidbetween4and5;
--删除记录
QueryOK,2rowsaffected(0.05sec)
insertintotest(val,data)values(70,'
ddd'
--产生第三个文件文件
QueryOK,0rowsaffected(0.11sec)
insertintotest(val,data)values(80,'
dddd'
insertintotest(val,data)values(90,'
eeee'
droptabletest;
--删除表
QueryOK,0rowaffected(0.05sec)
2.恢复数据
先用mysqlbinlog工具将日志文件生成txt文件出来分析。
mysql>
mysqlbinlog/var/log/mysql/mysql-bin.000001>
/var/log/mysql/000001.txt;
mysqlbinlog/var/log/mysql/mysql-bin.000002>
/var/log/mysql/000002.txt;
mysqlbinlog/var/log/mysql/mysql-bin.000003>
/var/log/mysql/000003.txt;
通过这三个命令,可以生成分别记录了日志文件的内容,也就是用户操作的步骤。
因为我们需要重做第一个日志文件的所有操作,所以这里只需要将第一个日志文件全恢复就行了。
mysqlbinlog/var/log/mysql/mysql-bin.000001
|mysql-uroot–p
Ok,接着,我们需要分析的是第二个日志文件。
为什么要分析它呢,因为它中途执行了一个操作是DELETE,因为我们要做的是恢复全部数据,也就是我们不希望去重做这个语句。
所以在这里我们要想办法去绕开它。
我们先打开.txt文件来分析一下。
/*
/*!
40019SET@@session.max_insert_delayed_threads=0*/;
50003SET@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER/*!
*/;
#at4
#09042715:
27:
56serverid1end_log_pos106Start:
binlogv4,serverv5.1.32-community-logcreated09042715:
56
BINLOG'
fF71SQ8BAAAAZgAAAGoAAAAAAAQANS4xLjMyLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'
/*!
#at106
28:
37serverid1end_log_pos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 日志 文件 使用