云梦编程网

当前位置:首页 > Liunx教程 >

Linux系统mysql开启binlog日志

作者:佚名 时间:2024-06-18 09:17:41 阅读:(22)

在Linux系统中,MySQL是一种常用的关系型数据库管理系统。binlog日志是MySQL的二进制日志,它记录了对数据库进行更改的所有操作,包括增删改等。通过开启binlog日志,我们可以实现数据恢复、主从复制、数据审计等功能。接下来云梦编程网为大家介绍如何在Linux系统上开启MySQL的binlog日志。有需要的小伙伴可以参考一下:

Linux系统mysql开启binlog日志

1、登录mysql

使用命令登录:mysql -uroot -p,登录成功后显示如下界面:

Linux系统mysql开启binlog日志

2、查看是否开启binlog

在mysql成功登录之后,输入以下命令,查看是否开启binlog

show variables like 'log_bin'

Linux系统mysql开启binlog日志

3、开启binlog

如果在第二步的时候我们查到的log_bin对应的值是OFF的话,标识当前服务器mysql是没有开启binlog日志的,开启binlog我们需要先找到mysql的配置文件my.cnf,

[mysqld]
log-bin=mysql-bin #开启Binlog
binlog_format=mixed # binlog日志格式,mysql默认采用statement,建议使用mixed
server-id   = 1  #配置当前机器器的服务ID(如果是mysql集群,不能重复)
max_binlog_size = 500M  #bin log日志每达到设定大小后,会使用新的bin log日志。
expire_logs_days = 10   #保留指定日期范围内的bin log历史日志,这里我们设置的是10天,具体的可以根据自己的需求设置、
early-plugin-load = ""

配置文件设置好之后重启mysql服务,然后重复第二步的操作查看binlog是否开启成功。

systemctl restart mysqld

4、binlog_format模式扩展

    (1)、STATEMENT模式(SBR)

每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)

    (2)、ROW模式(RBR)

不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。

    (3)、MIXED模式(MBR)

以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。

5、注意事项:

    (1)、开启binlog日志会增加系统资源的消耗,请确保你的系统具备足够的存储空间和性能。

    (2)、定期清理不再需要的binlog日志文件,以避免占用过多的磁盘空间。

    (3)、在进行重要操作之前,务必备份binlog日志,以便在需要时进行数据恢复。


以上就是云梦编程网位大家介绍的在Linux系统上开启MySQL的binlog日志的步骤。希望本文对你有所帮助!

最新文章

热门文章