更新数据库链接
This commit is contained in:
52
init/databaseInit/databaseInit.go
Normal file
52
init/databaseInit/databaseInit.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package databaseInit
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"gopkg.in/yaml.v3"
|
||||
"os"
|
||||
"toutoukan/model/config"
|
||||
)
|
||||
|
||||
var UserDB *sql.DB
|
||||
|
||||
func DbInit() {
|
||||
data, err := os.ReadFile("./config.yaml")
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("读取配置文件失败: %w", err))
|
||||
}
|
||||
|
||||
// 解析配置
|
||||
var config config.Config
|
||||
if err := yaml.Unmarshal(data, &config); err != nil {
|
||||
panic(fmt.Errorf("解析YAML失败: %w", err))
|
||||
}
|
||||
|
||||
// 构建DSN
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/toutoukan?%s",
|
||||
config.Database.Username,
|
||||
config.Database.Password,
|
||||
config.Database.Host,
|
||||
config.Database.Port,
|
||||
config.Database.Params,
|
||||
)
|
||||
|
||||
fmt.Println("DSN:", dsn)
|
||||
|
||||
UserDB, err = sql.Open("mysql", dsn)
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("数据库连接失败1: %w", err))
|
||||
}
|
||||
|
||||
// 验证连接是否可用
|
||||
if err := UserDB.Ping(); err != nil {
|
||||
panic("数据库连接不可用2")
|
||||
}
|
||||
|
||||
// 设置连接池参数
|
||||
UserDB.SetMaxOpenConns(10) // 最大打开连接数
|
||||
UserDB.SetMaxIdleConns(5) // 最大空闲连接数
|
||||
UserDB.SetConnMaxLifetime(0) // 连接最大存活时间(0表示不限制)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user