mysqlbinlog:

用于解析binlog日志。在data目录下面,mysql.index是mysqlbinlog的索引文件。binlog的作用是记录mysql内部的增删改。不对select做记录。

选项:

1.-d dbname:用于拆库,把指定库的二进制日志分割出来

2.--start-position;--stop-position      mysqldump mysql-bin.000006 --start-position=486 --stop-position=1156 > test.sql


master-data=

当为2时,会将master_log_pos那行注释掉,当为1时,会将master_log_pos那行不注释。


等于1的作用,当做主从同步的时候,使用--master-data=1,master_log_pos那行不注释,将全备倒入到从库执行时,master_log_pos会告诉应该从主库的什么地方开始进行恢复。


mysql数据库中的日志文件


错误日志(error log):记录mysql服务进程mysqld在启动和关闭或运行过程中遇到的错误日志

查询日志:

       普通查询日志(query log):记录客户端连接信息和执行sql语句信息

       慢查询日志(slow query log):记录执行时间超出指定值的sql语句或者是执行没有索引的sql语句(优化慢查询sql语句是DBA要做的)

        二进制日志(binary log):记录数据被修改的相关信息:


错误日志:在data数据目录下以err结尾的

二进制日志:bin-log


普通查询日志和慢查询日志一般不打开,日志文件太大了

对于普通日志:

mysql> show variables like '%log%';

image.png

使用set将其打开:

mysql> set global general_log = ON;
Query OK, 0 rows affected (0.01 sec)

 然后随便创建或者查询几个表,都会在localhost.log这个文件中记录

image.png


慢查询:(在/etc/my.cnf配置)

  1. #查询时间超过1秒的sql语句会被记录  

  2. long_query_time=1  

  3. #记录没有使用索引的查询  

  4. log_queries_not_using_indexes=1

  5. #记录慢查询日志的文件地址  

  6. slow-query-log-file=/usr/local/mysql/localhost-slow.log

binlog日志有3种模式。