开启MySQL的binlog日志

在/etc/my.cnf增加如下配置
#binlog相关
log-bin = /testdata/mysql/log/bin/mysql-bin
expire_logs_days = 7
binlog-format = ROW
binlog_cache_size = 4M
max_binlog_cache_size = 20G
binlog_rows_query_log_events = 1
binlog_row_image = FULL
sync_binlog = 1
log_bin_trust_function_creators = 1
sync_relay_log = 10000

server-id=123454


binlog 就是binary log,二进制日志文件,这个文件记录了mysql所有的dml操作。通过binlog日志我们可以做数据恢复,做主住复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架构人员来讲是非常重要的。
 
如何开启mysql的binlog日志呢?
在my.inf主配置文件中直接添加三行
log_bin=ON
log_bin_basename=/testdata/mysql/log/bin/mysql-bin
log_bin_index=/testdata/mysql/log/bin/mysql-bin.index
三个参数来指定,
第一个参数是打开binlog日志
第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件
第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录
 
当然也有一种简单的配置,一个参数就可以搞定
log-bin=/var/lib/mysql/mysql-bin
这一个参数的作用和上面三个的作用是相同的,mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index
 
这些配置完毕之后对于5.7以下版本应该是可以了,但是我们这个时候用的如果是5.7及以上版本的话,重启mysql服务会报错。这个时候我们必须还要指定一个参数
server-id=123454
随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了
 
有了上述的配置之后,我们就可以重新启动我们的mysql

[mysql@t3-dtpoc-dtpoc-web04 mysql]$ service mysql restart
Shutting down MySQL.. SUCCESS! 
rm: cannot remove '/var/lock/subsys/mysql': Permission denied
Starting MySQL.. SUCCESS!


mysql> show variables like '%log_bin%';
+---------------------------------+-----------------------------------------+
| Variable_name                   | Value                                   |
+---------------------------------+-----------------------------------------+
| log_bin                         | ON                                      |
| log_bin_basename                | /testdata/mysql/log/bin/mysql-bin       |
| log_bin_index                   | /testdata/mysql/log/bin/mysql-bin.index |
| log_bin_trust_function_creators | ON                                      |
| log_bin_use_v1_row_events       | OFF                                     |
| sql_log_bin                     | ON                                      |
+---------------------------------+-----------------------------------------+
6 rows in set (0.01 sec)

mysql> delete from SC;
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> delete from SC;
Query OK, 140000 rows affected (0.66 sec)

mysql> call insert_SC();
Query OK, 1 row affected (4 min 18.28 sec)

插入大量数据之后看bin log的目录下,新生成了bin文件
[mysql@t3-dtpoc-dtpoc-web04 bin]$ ls -ltr
total 49100
-rw-r----- 1 mysql mysql       41 Aug 18 16:54 mysql-bin.index
-rw-r----- 1 mysql mysql 50270630 Aug 18 17:02 mysql-bin.000001
[mysql@t3-dtpoc-dtpoc-web04 bin]$ 

你可能感兴趣的:(adb)