MySql - Ändern von expire_logs_days ohne Neustart des Servers

Antworten:

10

danke @dezso

Hier ist, wie ich es geändert habe: SET GLOBAL expire_logs_days = 4;

Ran
quelle
3

In MySQL 5.6 möchten Sie zeigen, auf was Ihre expire_logs_days zuerst eingestellt sind. Stellen Sie dann sicher, dass der Master diese Protokolle nicht länger als die xAnzahl der Tage aufbewahren muss. Vorsicht, binäre Protokolle, die in Tagen so niedrig sind, können ein großes Risiko darstellen.

Global festlegen als:

mysql> zeige Variablen wie 'expire_logs_days';
+ ------------------ + ------- +
| Variablenname | Wert |
+ ------------------ + ------- +
| expire_logs_days | 5 |
+ ------------------ + ------- +
1 Reihe im Satz (0,00 Sek.)
mysql> set global expire_logs_days = 1;
Abfrage OK, 0 Zeilen betroffen (0,62 Sek.)
mysql> zeige Variablen wie 'expire_logs_days';
+ ------------------ + ------- +
| Variablenname | Wert |
+ ------------------ + ------- +
| expire_logs_days | 1 |
+ ------------------ + ------- +
1 Reihe im Satz (0,00 Sek.)

Vergessen Sie dann nicht, die Datei my.cnf zu aktualisieren, wenn diese Einstellung erhalten bleiben oder einen Neustart des Dienstes überleben soll:

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

Löschen Sie dann das aktuelle Protokoll und lassen Sie die binäre Protokollanweisung auf alle Protokolle wirksam werden, die älter als 1 Tag sind. In Ihrem Fall:

mysql> binäre Protokolle leeren;
Tony-Caffe
quelle
1

MySQL (Community) Version 8.0.17-1.sles12 - OpenSUSE Tumbleweed 2019.10.02

mysql> SET GLOBAL expire_logs_days = 4;
ERROR 3683 (HY000): The option expire_logs_days and binlog_expire_logs_seconds
cannot be used together. Please use binlog_expire_logs_seconds to set the expire
time (expire_logs_days is deprecated)

..

Niederländischer Ruhm
quelle