MySql - 在不重启服务器的情况下更改 expire_logs_days

Ran*_*Ran 10 mysql replication mysql-5.5

我正在使用 MySql 5.5。是否可以在expire_logs_days不重新启动服务器的情况下进行更改并使更改生效?

Ran*_*Ran 11

谢谢@dezso

这是我改变它的方式: SET GLOBAL expire_logs_days = 4;


小智 9

在 MySQL 5.6 中,您可能希望首先显示 expire_logs_days 的设置。然后确认 master 不需要保留这些日志超过x天数。需要注意的是,拥有几天内低的二进制日志可能是一个很大的风险。

全局设置为:

mysql> 显示诸如“expire_logs_days”之类的变量;
+-----------------+-------+
| 变量名 | 价值 |
+-----------------+-------+
| expire_logs_days | 5 |
+-----------------+-------+
1 行(0.00 秒)
mysql> 设置全局 expire_logs_days=1;
查询正常,0 行受影响(0.62 秒)
mysql> 显示诸如“expire_logs_days”之类的变量;
+-----------------+-------+
| 变量名 | 价值 |
+-----------------+-------+
| expire_logs_days | 1 |
+-----------------+-------+
1 行(0.00 秒)

如果您希望此设置在服务重启后保留或继续存在,请不要忘记更新 my.cnf 文件:

$ sudo vim /etc/my.cnf
    expire_logs_days = 1

然后刷新当前日志并使二进制日志语句对所有早于 1 天的日志生效,在您的情况下:

mysql> 刷新二进制日志;