mysql开启配置binlog

1. binlog日志基本概念

binlog是MySQL sever层维护的一种二进制日志,binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE、DROP等)以及表数据修改(INSERT、UPDATE、DELETE、TRUNCATE等)的二进制日志。不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改。

  • 主从复制:多个数据库做主从复制,读写分离
  • 数据审计

2. 查看binlog日志记录启用状态

MySQL安装完成后,MySQL5.7版本binlog默认是不开启的,MySQL8默认开启binlog,登录MySQL后,可以通过SHOW VARIABLES LIKE '%log_bin%';命令查看是否开启binlog。

bash 复制代码
# 查看是否开启binlog
mysql> SHOW VARIABLES LIKE '%log_bin%';

3. 开启binlog日志

  • 编辑配置文件
bash 复制代码
# 在centos中mysql的配置文件一般都在/etc/mysql目录下,如果不在可以通过 find / -name "my.cnf" 查找
vi /etc/mysql/my.cnf
  • 添加配置
bash 复制代码
# 服务ID
server-id=1
# binlog 配置 只要配置了log_bin地址 就会开启
log_bin = /var/lib/mysql/mysql_bin
# 日志存储天数 默认0 永久保存
# 如果数据库会定期归档,建议设置一个存储时间不需要一直存储binlog日志,理论上只需要存储归档之后的日志
expire_logs_days = 30
# binlog最大值
max_binlog_size = 1024M
# 规定binlog的格式,binlog有三种格式statement、row、mixad,默认使用statement,建议使用row格式
binlog_format = ROW
# 在提交n次事务后,进行binlog的落盘,0为不进行强行的刷新操作,而是由文件系统控制刷新日志文件,如果是在线交易和账有关的数据建议设置成1,如果是其他数据可以保持为0即可
sync_binlog = 1
  • 重启MySQL服务使配置生效
bash 复制代码
systemctl restart mysqld
相关推荐
x***r1511 小时前
dbeaver-ce-24.1.3-x86_64-setup安装步骤详解(附DBeaver数据库管理与SQL编写教程)
数据库·sql
一只鹿鹿鹿1 小时前
数据库运维与管理规范(WORD)
运维·数据库
todoitbo2 小时前
WHERE 子句中的函数执行顺序与副作用风险分析
数据库·时序数据库·函数
jiayong232 小时前
MySQL 8.0 Root 用户远程登录配置完整指南
数据库·mysql
数智化管理手记2 小时前
设备总停机?找准根源+TPM核心逻辑,筑牢零故障基础
数据库·人工智能·低代码·制造
zhangshuang-peta2 小时前
MCP + OpenClaw:执行框架如何被“约束成系统”
数据库·人工智能·ai·ai agent·mcp·peta
java1234_小锋2 小时前
说一下Spring的事务传播行为?
java·数据库·spring
苏三说技术2 小时前
美团二面:高并发下如何保证接口幂等性?
java·数据库
精益数智小屋3 小时前
设备维护方案核心功能拆解:一套好的设备维护方案如何解决设备突发故障
大数据·运维·网络·数据库·人工智能·面试·自动化
phltxy3 小时前
Redis 常见数据类型之全局通用命令详解
数据库·redis·bootstrap