要减小 MySQL 数据目录(/www/server/data)的大小,可以从配置文件中调整以下几个关键部分,主要针对日志文件和临时文件的设置:

二进制日志(binlog)设置:
ini
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 3 # 从10天缩短为3天,减少二进制日志累积
max_binlog_size = 100M # 添加此参数,限制单个binlog文件大小
慢查询日志设置:
ini
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=5 # 从3秒延长到5秒,减少慢查询日志记录量
log_queries_not_using_indexes=off # 关闭未使用索引的查询日志(如果开启的话)
临时表大小限制:
ini
tmp_table_size = 16M # 从32M减半,减少临时表占用空间
max_heap_table_size = 16M # 添加此参数,与tmp_table_size保持一致
InnoDB 日志文件(需要谨慎操作):
ini
innodb_log_file_size = 32M # 从64M减小,需先停止服务并删除旧日志文件
修改后相关部分的完整配置示例:
ini
[mysqld]
# 其他配置保持不变...
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
expire_logs_days = 3 # 缩短二进制日志保留时间
max_binlog_size = 100M # 限制单个binlog大小
slow_query_log=1
slow-query-log-file=/www/server/data/mysql-slow.log
long_query_time=5 # 提高慢查询阈值
#log_queries_not_using_indexes=on # 保持关闭状态
tmp_table_size = 16M # 减小临时表大小
max_heap_table_size = 16M # 新增参数
# InnoDB配置调整
innodb_log_file_size = 32M # 减小日志文件大小
# 其他InnoDB配置保持不变...
注意事项:
修改innodb_log_file_size后,需要先停止 MySQL 服务,删除 data 目录下的ib_logfile0和ib_logfile1文件,再重新启动服务
调整后可能需要观察系统性能,确保不会影响正常业务
定期清理日志文件和优化数据库表也能有效减小 data 目录大小
这些调整主要通过限制日志文件的大小和保留时间,以及优化临时文件使用来达到减小 data 目录体积的目的。

