From 1bb24e7382c4096ce3ee457734dc6d9136b85d82 Mon Sep 17 00:00:00 2001 From: zijiren233 Date: Fri, 17 Nov 2023 15:22:41 +0800 Subject: [PATCH] Opt: mysql ssl mode --- internal/bootstrap/db.go | 6 ++++-- internal/conf/db.go | 9 ++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/bootstrap/db.go b/internal/bootstrap/db.go index 5b67a6f..d1daa08 100644 --- a/internal/bootstrap/db.go +++ b/internal/bootstrap/db.go @@ -28,20 +28,22 @@ func InitDatabase(ctx context.Context) error { if conf.Conf.Database.CustomDSN != "" { dsn = conf.Conf.Database.CustomDSN } else if conf.Conf.Database.Port == 0 { - dsn = fmt.Sprintf("%s:%s@unix(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local&interpolateParams=true", + dsn = fmt.Sprintf("%s:%s@unix(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local&interpolateParams=true&tls=%s", conf.Conf.Database.User, conf.Conf.Database.Password, conf.Conf.Database.Host, conf.Conf.Database.DBName, + conf.Conf.Database.SslMode, ) log.Infof("mysql database unix socket: %s", conf.Conf.Database.Host) } else { - dsn = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local&interpolateParams=true", + dsn = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local&interpolateParams=true&tls=%s", conf.Conf.Database.User, conf.Conf.Database.Password, conf.Conf.Database.Host, conf.Conf.Database.Port, conf.Conf.Database.DBName, + conf.Conf.Database.SslMode, ) log.Infof("mysql database tcp: %s:%d", conf.Conf.Database.Host, conf.Conf.Database.Port) } diff --git a/internal/conf/db.go b/internal/conf/db.go index 46ebecb..d931e12 100644 --- a/internal/conf/db.go +++ b/internal/conf/db.go @@ -15,7 +15,7 @@ type DatabaseConfig struct { User string `yaml:"user" env:"DATABASE_USER"` Password string `yaml:"password" env:"DATABASE_PASSWORD"` DBName string `yaml:"db_name" lc:"default: synctv" hc:"when type is sqlite3, it will use sqlite db file or memory" env:"DATABASE_DB_NAME"` - SslMode string `yaml:"ssl_mode" env:"DATABASE_SSL_MODE"` + SslMode string `yaml:"ssl_mode" env:"DATABASE_SSL_MODE" hc:"mysql: true, false, skip-verify, preferred, postgres: disable, require, verify-ca, verify-full"` CustomDSN string `yaml:"custom_dsn" hc:"when not empty, it will ignore other config" env:"DATABASE_CUSTOM_DSN"` @@ -27,10 +27,9 @@ type DatabaseConfig struct { func DefaultDatabaseConfig() DatabaseConfig { return DatabaseConfig{ - Type: DatabaseTypeSqlite3, - Host: "", - DBName: "synctv", - SslMode: "disable", + Type: DatabaseTypeSqlite3, + Host: "", + DBName: "synctv", MaxIdleConns: 4, MaxOpenConns: 64,