日志记的是数据库运行期间发生的事
错误、二进制、通用查询、慢查询,一共四种。

记牢它四种
- 错误日志
- 二进制日志
- 通用日志
- 慢查询日志
重 点
只有错误日志天生就开着,另外三种默认都是关的。
试一试四种日志各管什么
| 问 | 答 |
|---|
错误、二进制、通用查询、慢查询,一共四种。

只有错误日志天生就开着,另外三种默认都是关的。
| 问 | 答 |
|---|
崩溃原因、改数据的语句、所有操作、跑得慢的查询。

| 日志 | 记不记 SELECT |
|---|---|
| 二进制日志 | 不记 |
| 通用日志 | 记 |
二进制日志不记 SELECT,因为 SELECT 不改数据,重放它没有意义。
只查不改的操作,会进二进制日志吗?
错误日志找起不来的原因,二进制日志修复数据,慢查询日志找该优化的语句。

二进制日志是这四种里最值钱的,它是备份之外唯一能救回数据的东西。
默认叫 主机名.err,位置和文件名可以在 my.ini 里改。

四种日志里只有这一种不能关,改完配置要重启服务才生效。
log-error 定的是路径和文件名,log-warnings 定的是要不要把警告也写进去。
一句 show 打出文件名,用记事本直接打开就能看。

一条命令新建一个,旧的改名留着,不是真删掉。

my.ini 里写一行 log-bin,重启服务才生效。

它是唯一一个必须改配置文件才能开的日志,SET GLOBAL 改不了。
开着它日志会越攒越多,所以要配上 expire_logs_days 让老的自动过期。
一句看开没开,一句看有哪几个文件,再用工具打开。

直接用 rm 删会让数据库崩,必须用命令删。

课件语法里那个 og_name 少一个字母,应该是 log_name。
reset master 是全删重来,编号从 000001 重新开始。
TO 后面跟文件名删掉它之前的,BEFORE 后面跟时间删掉那之前的。

从上次备份那一刻起,把日志里的语句重放一遍。

只还原备份,备份之后那几个小时的改动就永远丢了。
卡住终点,别把误删那一句也跟着重放进去。
