From ca94e3145179780f17d028ca5c079073f1f535ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Fri, 16 Sep 2022 10:39:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=AE=BE=E7=BD=AEbinlog=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/nodes/api_node.go | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/internal/nodes/api_node.go b/internal/nodes/api_node.go index 100404f0..924a1ea6 100644 --- a/internal/nodes/api_node.go +++ b/internal/nodes/api_node.go @@ -390,9 +390,9 @@ func (this *APINode) setupDB() error { if err != nil { return err } - value := result.GetString("Value") + var value = result.GetString("Value") if regexp.MustCompile(`^\d+$`).MatchString(value) { - valueInt := types.Int(value) + var valueInt = types.Int(value) if valueInt < 65535 { _, err := db.Exec("SET GLOBAL max_prepared_stmt_count=65535") if err != nil { @@ -405,6 +405,33 @@ then restart mysqld.`) } } + // 调整binlog过期时间 + { + const binlogExpireDays = 7 + + version, err := db.FindCol(0, "SELECT VERSION()") + if err == nil { + var versionString = types.String(version) + if strings.HasPrefix(versionString, "8.") { + result, err := db.FindOne("SHOW VARIABLES WHERE variable_name='binlog_expire_logs_seconds'") + if err == nil && result != nil { + var oldValue = result.GetInt("Value") + if oldValue > binlogExpireDays*86400 { + _, _ = db.Exec("SET GLOBAL binlog_expire_logs_seconds=" + types.String(binlogExpireDays*86400)) + } + } + } else if strings.HasPrefix(versionString, "5.") { + result, err := db.FindOne("SHOW VARIABLES WHERE variable_name='expire_logs_days'") + if err == nil && result != nil { + var oldValue = result.GetInt("Value") + if oldValue > binlogExpireDays { + _, _ = db.Exec("SET GLOBAL expire_logs_days=" + types.String(binlogExpireDays)) + } + } + } + } + } + return nil }