清除mysql binary log

作为一个oracle dba有时候不得不管理一下mysql数据库,当为主从库时需要阶段性清理mysql binary log,清楚方式如下:

首先查看mysql 的当前日志组

show master status;


确定当前日志组后删除日志文件

purge binary logs to 'mysql-bin.000795';

删除000795之前的日志

### 配置 MySQL 开启 log_bin 二进制日志功能 要在 CentOS 上配置 MySQL 并开启 `log_bin` 二进制日志功能,可以按照以下方法操作: #### 修改 MySQL 配置文件 编辑 MySQL 的配置文件 `/etc/my.cnf` 或者 `/etc/mysql/my.cnf`,具体路径取决于安装方式。如果找不到该文件,可以在根目录下创建一个新的 `my.cnf` 文件。 在 `[mysqld]` 节点下添加如下参数以启用 binlog 功能: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-format=mixed expire_logs_days=7 max_binlog_size=100M ``` - **server-id**: 设置唯一的服务器 ID,通常设置为大于等于 1 的整数[^1]。 - **log-bin**: 启用二进制日志并指定前缀名称为 `mysql-bin`。 - **binlog-format**: 定义日志格式,可以选择 `ROW`, `STATEMENT` 或 `MIXED`,推荐使用 `mixed` 模式[^2]。 - **expire_logs_days**: 自动清理超过指定天数的日志,默认值为 0 表示不自动清除[^3]。 - **max_binlog_size**: 控制单个二进制日志的最大大小,单位为字节[^4]。 保存修改后的配置文件后重启 MySQL 服务使更改生效: ```bash systemctl restart mysqld ``` #### 查看 Binlog 是否成功开启 登录到 MySQL 命令行工具中执行状态查询命令来确认二进制日志是否已经正常工作: ```sql SHOW VARIABLES LIKE 'log_bin'; SHOW MASTER STATUS; ``` 第一条 SQL 查询返回的结果应该显示变量 `log_bin` 的值为 ON,则表示已成功激活;第二条语句会列出当前正在使用的二进制日志文件及其位置等信息[^5]。 #### 注意事项 对于某些高版本的 MySQL (如 5.7+) 可能存在权限或者默认关闭的情况,在这种情况下除了调整上述配置外还需要注意检查操作系统层面是否有足够的磁盘空间以及正确的读写权限给定的数据目录。 --- ### 示例代码片段 以下是用于验证 binlog 状态的一个简单脚本: ```python import pymysql connection = pymysql.connect(host='localhost', user='root', password='your_password') try: with connection.cursor() as cursor: sql = "SHOW VARIABLES LIKE 'log_bin';" cursor.execute(sql) result = cursor.fetchone() finally: connection.close() if result and result[1].lower() == 'on': print("Binary logging is enabled.") else: print("Binary logging is NOT enabled.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值