修改gorm
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
package databaseInit
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"gopkg.in/yaml.v3"
|
||||
"gorm.io/driver/mysql"
|
||||
"gorm.io/gorm"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
"toutoukan/model/config"
|
||||
)
|
||||
|
||||
var UserDB *sql.DB
|
||||
var UserDB *gorm.DB
|
||||
var Dsn string
|
||||
|
||||
func DbInit() {
|
||||
data, err := os.ReadFile("./config.yaml")
|
||||
@@ -32,21 +36,25 @@ func DbInit() {
|
||||
config.Database.Params,
|
||||
)
|
||||
|
||||
Dsn = dsn
|
||||
|
||||
fmt.Println("DSN:", dsn)
|
||||
|
||||
UserDB, err = sql.Open("mysql", dsn)
|
||||
UserDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("数据库连接失败1: %w", err))
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// 验证连接是否可用
|
||||
if err := UserDB.Ping(); err != nil {
|
||||
panic("数据库连接不可用2")
|
||||
sqlDB, err := UserDB.DB()
|
||||
if err != nil {
|
||||
log.Printf("获取数据库连接池失败: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
// 设置连接池参数
|
||||
UserDB.SetMaxOpenConns(10) // 最大打开连接数
|
||||
UserDB.SetMaxIdleConns(5) // 最大空闲连接数
|
||||
UserDB.SetConnMaxLifetime(0) // 连接最大存活时间(0表示不限制)
|
||||
// 3. 配置连接池参数
|
||||
sqlDB.SetMaxOpenConns(50) // 最大打开连接数(并发连接上限,根据服务器性能调整)
|
||||
sqlDB.SetMaxIdleConns(20) // 最大空闲连接数(保持一定空闲连接,避免频繁创建)
|
||||
sqlDB.SetConnMaxLifetime(30 * time.Minute) // 连接最大存活时间(防止连接过期)
|
||||
sqlDB.SetConnMaxIdleTime(10 * time.Minute) // 连接最大空闲时间
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user