From 5fe8639342019824ad9c31290d49e74f13cde00d Mon Sep 17 00:00:00 2001 From: TaskPool Date: Sun, 26 Jul 2026 15:40:28 +0800 Subject: [PATCH] fix(mysql): use loc=Local to avoid unknown time zone Asia/Shanghai --- internal/database/database.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/database/database.go b/internal/database/database.go index 5fe2483..0c62844 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -107,7 +107,9 @@ func buildDSN(cfg *Config) (string, error) { if cfg.DSN != "" { return cfg.DSN, nil } - dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Asia%%2FShanghai", + // 使用 loc=Local,避免 MySQL 未加载时区表时出现 unknown time zone Asia/Shanghai + // 应用启动时已将 time.Local 设为 Asia/Shanghai (CST) + dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.DBName) if cfg.SSLMode != "" { dsn += "&tls=" + cfg.SSLMode