mysql5.7 打开日志bin-log

进入mysql 的文件下(未配置环境变量),进入mysql 。

1、首先确认你日志是否启用了mysql>show variables like ‘log_bin’。
在这里插入图片描述
编辑mysql配置文件

[mysqld]
default_authentication_plugin=mysql_native_password
port = 3306
添加:
log_bin=mysql_bin  
binlog-format=Row
server-id=1

expire_logs_days = 7   //修改保存天数      --查看mysql> show variables like 'expire_logs_days';
max_binlog_size = 500M   //修改保存文件大小     --查看mysql>  show variables like 'max_binlog_size';

在这里插入图片描述
在这里插入图片描述
2、查看正在写入的日志文件mysql> show master status,查看当前服务器所有的二进制日志文件show master logs.

二进制日志(binary log)默认放在数据目录下(系统变量datadir下)show variables like ‘datadir’;
在这里插入图片描述
查看当前binlog文件内容:show binlog events in ‘mysql-bin.000001’;

查看二进制文件内容:mysqlbinlog --no-defaults …/data/mysql_bin.000005
在这里插入图片描述
解密操作数据库的语句
mysqlbinlog --base64-output=decode-row -v ./data/mysql_bin.000005

在这里插入图片描述

实战

新建数据表插入数据并删除表格.
在这里插入图片描述
flush logs会生成新的mysql-bin.00000数+1文件
在这里插入图片描述
在这里插入图片描述
show binlog events in ‘mysql_bin.000006’;
解密操作数据库的语句mysqlbinlog --base64-output=decode-row -v ./data/mysql_bin.000006
记录开始插入和最后一条记录commit对应的at后的值
在这里插入图片描述
恢复数据:>mysqlbinlog --start-position=“219” --stop-position=“628” …/data/mysql_bin.000006 |mysql -uroot -p
在这里插入图片描述

### 如何在 MySQL 5.7 中禁用 `log-bin` 日志 要在 MySQL 5.7 中禁用二进制日志 (`log-bin`),可以通过以下方式实现: #### 修改配置文件 编辑 MySQL 的配置文件 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`(具体位置取决于操作系统和安装方式),找到 `[mysqld]` 部分下的 `log-bin` 参数。如果存在该参数,则将其删除或注释掉。 ```bash # 打开 my.cnf 文件 vi /etc/my.cnf # 注释掉或移除以下行 # log-bin=mysql-bin ``` 保存更改后重启 MySQL 服务以使配置生效[^4]。 ```bash systemctl restart mysqld ``` #### 动态关闭二进制日志功能 除了修改配置文件外,还可以通过动态设置来暂时停止记录新的二进制日志事件。执行以下 SQL 命令可以禁用当前会话中的二进制日志写入操作: ```sql SET sql_log_bin = OFF; ``` 需要注意的是,此命令仅影响当前连接的会话行为,并不会永久禁用整个实例上的二进制日志功能[^5]。 #### 删除现有的二进制日志文件 为了彻底清理旧的日志数据,在确认不再需要这些备份之后,可手动清除已生成的所有 `.bin` 文件以及索引文件: ```bash cd /var/lib/mysql/ rm -rf mysql-bin.* RESET MASTER; -- 清空元数据信息 ``` > **注意**: 此操作不可逆,请谨慎处理! 完成以上步骤即可成功停用 MySQL 5.7 上的 bin-log 记录机制[^6]。 --- ### 示例代码片段展示如何验证状态变更情况 以下是用于检查当前服务器是否启用了二进制日志的一个简单脚本: ```python import pymysql def check_binary_logging(host='localhost', user='root', passwd=''): try: conn = pymysql.connect( host=host, user=user, password=passwd ) cursor = conn.cursor() query = "SHOW VARIABLES LIKE 'log_bin';" cursor.execute(query) result = cursor.fetchone()[1] if str(result).lower() == 'on': print("Binary logging is enabled.") elif str(result).lower() == 'off': print("Binary logging has been disabled successfully.") except Exception as e: raise ValueError(f"Error occurred while connecting to database: {e}") check_binary_logging(user="your_username", passwd="your_password") ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值