博客
关于我
MySQL 中开启二进制日志(Binlog)
阅读量:795 次
发布时间:2023-02-10

本文共 1840 字,大约阅读时间需要 6 分钟。

MySQL 二进制日志配置指南

二进制日志(Binary Log,简称Binlog)是MySQL中记录数据库变更信息的重要功能,广泛应用于数据恢复、主从复制等场景。以下是不同操作系统下开启MySQL二进制日志的详细步骤。


Windows 系统

在Windows系统中,开启MySQL二进制日志的步骤如下:

  • 停止MySQL服务

    在修改配置文件之前,需先停止MySQL服务。

    • 通过服务管理器
      按下 Win + R 组合键,输入 services.msc 并回车,打开“服务”窗口。
      在服务列表中找到 MySQL 服务,右键点击并选择“停止”。
    • 使用命令行
      以管理员身份打开命令提示符,执行 net stop mysql
  • 找到并编辑 my.ini 文件

    • 默认安装路径C:\ProgramData\MySQL\MySQL Server X.X(X.X为具体版本号)。
    • 自定义安装路径:根据安装目录位置找到 my.ini 文件。
      使用文本编辑器(如Notepad++)打开 my.ini,找到 [mysqld] 部分,添加或修改以下配置项:
    [mysqld]# 开启二进制日志log_bin = C:/mysql/logs/mysql-bin.log# 设置服务器ID,主从复制中需要唯一server-id = 1# 二进制日志格式binlog_format = ROW
  • 创建日志文件目录

    如果指定的日志文件路径不存在,手动创建。例如:

    • 打开文件资源管理器,定位到 C:\mysql\logs,右键新建文件夹。
  • 启动MySQL服务

    • 通过服务管理器:右键点击 MySQL 服务,选择“启动”。
    • 使用命令行:以管理员身份打开命令提示符,执行 net start mysql
  • 验证二进制日志状态

    • 在MySQL命令行客户端中执行:
      SHOW VARIABLES LIKE 'log_bin'; -- 检查Binlog是否开启SHOW MASTER STATUS; -- 查看当前使用的二进制日志文件

  • Linux 系统

    在Linux系统中,开启MySQL二进制日志的步骤如下:

  • 停止MySQL服务

    使用命令 sudo systemctl stop mysql 停止服务。

  • 编辑配置文件

    打开 my.cnf 文件:

    sudo vim /etc/mysql/my.cnf

    [mysqld] 部分添加或修改配置:

    [mysqld]log_bin = /var/log/mysql/mysql-bin.logserver-id = 1binlog_format = ROW
  • 创建日志文件目录并设置权限

    sudo mkdir -p /var/log/mysqlsudo chown -R mysql:mysql /var/log/mysql
  • 启动MySQL服务

    使用命令 sudo systemctl start mysql 启动服务。

  • 验证二进制日志状态

    同样可以通过上述SQL命令验证Binlog状态。


  • Docker 容器中的MySQL

    在Docker容器中,通过环境变量或挂载配置文件开启Binlog:

  • 使用环境变量

    docker run -d \  --name mysql \  -e MYSQL_ROOT_PASSWORD=your_password \  -e MYSQL_LOG_BIN_ENABLED=1 \  -e MYSQL_LOG_BIN=/var/lib/mysql/mysql-bin.log \  -e MYSQL_SERVER_ID=1 \  -e MYSQL_BINLOG_FORMAT=ROW \  -p 3306:3306 \  mysql:8.0
  • 挂载配置文件

    创建一个包含Binlog配置的 my.cnf 文件:

    [mysqld]log_bin = /var/lib/mysql/mysql-bin.logserver-id = 1binlog_format = ROW

    启动容器并挂载配置文件:

    docker run -d \  --name mysql \  -e MYSQL_ROOT_PASSWORD=your_password \  -v /path/to/your/my.cnf:/etc/mysql/my.cnf \  -p 3306:3306 \  mysql:8.0

  • 通过以上步骤,你可以在不同操作系统中成功开启MySQL的二进制日志功能。

    转载地址:http://mgffk.baihongyu.com/

    你可能感兴趣的文章
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>
    mysql 查询数据库所有表的字段信息
    查看>>
    【Java基础】什么是面向对象?
    查看>>
    mysql 查询,正数降序排序,负数升序排序
    查看>>
    MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
    查看>>