1、作用
- 可以用来恢复数据
- 主从复制
2、记录了什么?
- DML语句、DDL、DCL等
- 修改了数据的操作
3、存放的位置
编译安装默认数据目录下
1)主机名-bin.00000*
sc-mysql-bin.000014
具体的二进制日志文件
默认一个二进制文件的大小是1G
mysql> show variables like '%max_binlog_%';
+----------------------------+----------------------+
| Variable_name | Value |
+----------------------------+----------------------+
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
+----------------------------+----------------------+
3 rows in set (0.02 sec)
mysql>
2)sc-mysql-bin.index
二进制日志文件的索引:记录一共有多少个二进制日志文件了
查看当前正在使用的是哪个二进制日志文件
mysql> show master status;
+-----------------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------------------+----------+--------------+------------------+-------------------+
| zabbix-4-centos7-bin.000004 | 154 | | | |
+-----------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
4、一个二进制日志文件是否记录了整个mysql进程里所有的库的操作?
是的,对所有库进行的操作都会记录到一个二进制文件里
如果需要记录到不同的日志文件里,可以采用多实例
5、配置
默认没有开启
修改配置文件
#开启二进制日志
log_bin
server_id = 1
root@(none) 10:42 mysql>show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.01 sec)
root@(none) 10:42 mysql>show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | ON |
+---------------+-------+
1 row in set (0.01 sec)
root@(none) 10:43 mysql>
service mysqld restart
6、格式
row level
MySQL默认
记录操作的每一行数据:即表里的哪些行的数据发生了变化
statement level
记录用户输入的SQL语句
mariadb-5.5.64默认
mixed level
7、产生新的二进制日志文件
service mysqld restart
flush logs
8、删除所有的二进制日志
mysql> reset master;
9、查看二进制日志
mysqlbinlog
编译安装需要加入path变量才有此命令
[root@sc-mysql bin]# PATH=$PATH:/usr/local/mysql/bin/
-vv信息更加多