diff --git a/internal/db/db.go b/internal/db/db.go index 9f1f298..9587931 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -13,7 +13,7 @@ import ( var DB *sql.DB func Init(cfg *config.Config) error { - dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", + dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=true&loc=Asia%%2FShanghai", cfg.DBUser, cfg.DBPassword, cfg.DBHost, cfg.DBPort, cfg.DBName) var err error @@ -26,6 +26,11 @@ func Init(cfg *config.Config) error { return fmt.Errorf("failed to ping database: %w", err) } + // 确保 MySQL session 时区为 UTC+8 + if _, err = DB.Exec("SET time_zone = '+08:00'"); err != nil { + log.Printf("Warning: failed to set MySQL time_zone to +08:00: %v", err) + } + DB.SetMaxOpenConns(25) DB.SetMaxIdleConns(5)