在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;