我们知道mysql的日志功能,有一般日志,错误日志,慢查询日志,和bin-log日志
它们的配置文件在/etc/my.cnf中,而日志文件则是在mysql/var/文件夹下面
下面我们重点研究的是mysql的bin日志
mysql 的bin-log日志它其实就是二进制日志,存储的是mysql数据库的
在linux中log-bin默认是开启的,查看配置文件/etc/my.cnf中我们看到
这样就说明bin-log日志是打开的
我们也可以在mysql中查看bin-log信息,登录mysql
mysql> show variables like "%log_bin%";
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_bin_trust_routine_creators | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
4 rows in set (0.10 sec)
可以看到log_bin 是ON打开的
开启后,我们可以看到mysql的日志文件
我们可以看到已mysql-bin为前缀的一系列日志文件,这些就是mysql的二进制日志文件
这些文件里记录的是二进制信息,所以用一般的vim是打不开的,我们可以用mysqlbinlog来查看信息
当我们需要一个新的bin-log日志来记录信息时,比如现在最新的一个是mysql-bin.000011这个文件,现在我们想要一个mysql-bin.000012文件来记录信息我们可以使用flush logs来刷新日志
mysql> flush logs;
Query OK, 0 rows affected (0.10 sec)
再来查看文件,我们发现多了一个文件
当我们要查看最后一个日志信息时,我们可以使用show master status来查看
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000012 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
看到最后一个日志是000012文件,它的position是106,postion则是mysql记录的增删改的位置
当我们要清空bin-log日志信息时可以使用 reset master,然后就可以看到文件只剩mysql-bin.000001和mysql-bin.index文件
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
最新的日志文件也是mysql-bin.000001文件
mysql的bin-log日志初步的就到这里