[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 |
+------------------+-----------+
这些文件ibdata1
,mysql-bin.000008
和mysql-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...”命令将删除二进制日志。