我有一个具有〜350Gb访问日志文件的MySQL 5.5服务(RHEL 5.x)。 我想把这个文件清零。 我需要事先做一些特别的事吗? 停止服务器?
首先重命名日志文件,然后发出命令FLUSH LOGS ,这会导致MySQLclosures并重新打开该文件。 由于该文件不存在,它会创build一个新文件。
然后做任何你想要的原始文件。
不需要重新启动。
shell> cd mysql-data-directory shell> mv mysql.log mysql.old shell> mv mysql-slow.log mysql-slow.old shell> mysqladmin flush-logs
参考: MySQL :: MySQL 5.0参考手册:: 5.2.5服务器日志维护
什么是MySQL中的访问日志? 你的意思是general_log? 无论如何,使用logrotate旋转任何MySQL日志。 这里是示例configuration。 更改日志文件名称。
/root/.my.cnf必须存储用户名和密码才能连接到MySQL
# cat /etc/logrotate.d/mysql /var/lib/mysql/mysql-error.log /var/lib/mysql/general.log { compress rotate 7 size 1G missingok create 640 mysql mysql notifempty dateext sharedscripts postrotate test -x /usr/bin/mysqladmin || exit 0 MYADMIN="/usr/bin/mysqladmin --defaults-file=/root/.my.cnf" if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then if ps cax | grep -q mysqld; then exit 1 fi else $MYADMIN flush-logs fi endscript
}
cat / dev / null> your_access_log_file – 不需要重新启动服务,但需要一段时间才能将350GB