mysql ibdata1 压缩_如何在mysql中压缩/清除ibdata1文件

这是一个Bash脚本,用于从MySQL获取所有非系统数据库,备份,清空,然后停止MySQL服务。接着,它删除特定的MySQL文件,并重启服务。最后,脚本导入备份并删除备份文件。这个过程有助于释放磁盘空间,特别是在需要清理二进制日志以回收空间的情况下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在bash中快速编写接受答案的过程脚本:

#!/usr/bin/env bash

DATABASES="$(mysql -e 'show databases \G' | grep "^Database" | grep -v '^Database: mysql$\|^Database: binlog$\|^Database: performance_schema\|^Database: information_schema' | sed 's/^Database: //g')"

mysqldump --databases $DATABASES -r alldatabases.sql && echo "$DATABASES" | while read -r DB; do

mysql -e "drop database \`$DB\`"

done && \

/etc/init.d/mysql stop && \

find /var/lib/mysql -maxdepth 1 -type f \( -name 'ibdata1' -or -name 'ib_logfile*' \) -delete && \

/etc/init.d/mysql start && \

mysql < alldatabases.sql && \

rm -f alldatabases.sql

另存为

purge_binlogs.sh

然后运行

root

.

排除

mysql

,

information_schema

,

performance_schema

(和)

binlog

目录)。

假设您在中具有管理员凭据

/root/.my.cnf

而且你的数据库是默认的

/var/lib/mysql

目录。

您还可以在运行此脚本后清除二进制日志,以使用以下方法重新获得更多磁盘空间:

PURGE BINARY LOGS BEFORE CURRENT_TIMESTAMP;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值