Linux中MySQL5.7启动二进制日志及安全删除二进制日志文件

一、启动MySQL的二进制日志

在my.cnf文件中添加两行变量,然后重启mysql

[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
log_bin=mysql   
server-id=101  #必须是集群中的唯一id


[root@localhost ~]# systemctl restart mysqld

二、安全删除二进制日志文件

二进制文件不能直接删除,否则很有可能出现数据库崩溃。

每一次启动或刷新mysql都会产生新的二进制日志文件。

mysql> flush logs;   #刷新数据库
Query OK, 0 rows affected (0.01 sec)
  1. 批量连续删除purge。
    mysql> show master logs;
    +--------------+-----------+
    | Log_name     | File_size |
    +--------------+-----------+
    | mysql.000001 |       197 |
    | mysql.000002 |       197 |
    | mysql.000003 |       197 |
    | mysql.000004 |       197 |
    | mysql.000005 |       197 |
    | mysql.000006 |       154 |
    +--------------+-----------+
    6 rows in set (0.00 sec)   
    
    mysql> purge master logs to 'mysql.000005';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show master logs;
    +--------------+-----------+
    | Log_name     | File_size |
    +--------------+-----------+
    | mysql.000005 |       197 |
    | mysql.000006 |       154 |
    +--------------+-----------+
    2 rows in set (0.00 sec)
    
    
  2. 全部删除,只余索引文件和一个空的新建的二进制日志文件。
    reset master;
    mysql> show master logs;
    +--------------+-----------+
    | Log_name     | File_size |
    +--------------+-----------+
    | mysql.000001 |       197 |
    | mysql.000002 |       197 |
    | mysql.000003 |       197 |
    | mysql.000004 |       197 |
    | mysql.000005 |       197 |
    | mysql.000006 |       154 |
    +--------------+-----------+
    6 rows in set (0.00 sec)   
    
    mysql> reset master;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> show master logs;
    +--------------+-----------+
    | Log_name     | File_size |
    +--------------+-----------+
    | mysql.000001 |       154 |
    +--------------+-----------+
    1 row in set (0.00 sec)
    
  3. 通过修改my.cnf配置文件删除
    [root@localhost ~]# vim /etc/my.cnf
    [mysqld]
    expire_logs_days=3  #删除3天前的日志文件
    

你可能感兴趣的:(mysql)