这些文件是什么?我可以手动删除它们吗?

这些文件是什么?我可以手动删除它们吗?
[root@jiaoyou mysql]# pwd
/var/lib/mysql
[root@jiaoyou mysql]# ls -ls
338256 -rw-rw---- 1 mysql mysql 346030080 2010-04-22 08:08 ibdata1
626812 -rw-rw---- 1 mysql mysql 641222072 2010-01-26 07:17 mysql-bin.000008
316892 -rw-rw---- 1 mysql mysql 324173772 2010-03-25 12:51 mysql-bin.000009
52724 -rw-rw---- 1 mysql mysql  53931666 2010-04-12 12:13 mysql-bin.000010
10136 -rw-rw---- 1 mysql mysql  10359639 2010-04-22 08:32 mysql-bin.000011

mysql> SHOW BINARY LOGS; 
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000008 | 641222072 | 
| mysql-bin.000009 | 324173772 | 
| mysql-bin.000010 |  53931666 | 
| mysql-bin.000011 |  10360680 | 
+------------------+-----------+

这些文件ibdata1mysql-bin.000008mysql-bin.000009...占用了太多我的空间,我可以手动删除其中一些吗?

更新 我没有使用 MySQL 的主/从,如何删除和禁用所有二进制文件?

答案1

这些是 mysql bin 日志。如果使用 rm 删除它们,服务器可能会非常烦躁。

相反,PURGE BINARY LOGS TO 'mysql-bin.010';以 root mysql 用户身份使用以让其安全地删除文件。

更多信息请见这里在文档中。

答案2

这些是 mysql 服务的日志文件。可以通过更新 /etc/my.cnf 文件来自定义设置

如果它们占用了你的磁盘空间,则添加设置以根据你想要保留的天数自动清除日志

例如,以下设置将删除所有超过 90 天的日志

**expire_logs_days=100**

为了反映此设置,我们需要重新启动 mysql 服务

/etc/init.d/mysql restart

希望这可以帮助

答案3

这些mysql-bin文件是二进制日志,通常用于事务历史记录或用于复制。要禁用二进制日志,您可以注释log-bin*cnf 中的行。 log-slave-updates如果启用,也应注释。

ibdata*文件是 InnoDB 表空间的一部分,该表空间通过设置指定innodb_data_file_path。除非您没有 InnoDB 表,并且首先skip-innodb在 cnf 中使用禁用 InnoDB,否则我不建议删除。

答案4

要完全禁用日志记录,您需要在配置文件(通常为 /etc/my.cnf)中注释掉 log-bin 值:

#log-bin = /var/log/mysql/mysql-bin.log

我认为 ibdata1 文件可能包含实际数据库 - 我不使用 innodb,所以我不确定 - 所以我不建议删除它。但是“PURGE BINARY LOGS TO...”命令将删除二进制日志。

相关内容