Files
simple-memo/core/mysql.go
T
sunct 3c3bf53ae4 docs(website): 添加简记memo产品原型和UI设计规范文档
- 新增「简记memo」一体化小程序产品原型设计文档
- 新增简记memo完整版UI视觉设计规范和界面细节
- 添加IDEA项目配置文件.gitignore
- 创建404页面HTML文件,包含响应式布局和错误提示
- 添加关于页面HTML文件,展示品牌介绍和团队信息
- 实现AES加解密工具函数,支持请求体加密
- 添加用户协议页面基础框架
2026-07-31 14:12:32 +08:00

51 lines
1.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// MySQL初始化 + 表前缀sm_(已修复GORM兼容报错)
package core
import (
"simple-memo/global"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
)
// InitMysql 初始化MySQL数据库连接
func InitMysql() {
// 从配置文件读取数据库信息
host := global.VP.GetString("mysql.host")
port := global.VP.GetString("mysql.port")
dbname := global.VP.GetString("mysql.dbname")
username := global.VP.GetString("mysql.username")
password := global.VP.GetString("mysql.password")
// MySQL 连接字符串
dsn := username + ":" + password + "@tcp(" + host + ":" + port + ")/" + dbname + "?charset=utf8mb4&parseTime=True&loc=Local"
// 打开数据库连接,启用表前缀sm_
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
// ========== 修复:正确设置表前缀,无报错 ==========
NamingStrategy: schema.NamingStrategy{
TablePrefix: "sm_", // 所有表统一前缀:sm_
SingularTable: true, // 禁用表名复数(User → sm_user
},
})
if err != nil {
panic("MySQL连接失败:" + err.Error())
}
// 设置数据库连接池,支撑高并发
sqlDB, err := db.DB()
if err != nil {
panic("获取数据库连接失败:" + err.Error())
}
sqlDB.SetMaxOpenConns(100) // 最大打开连接数
sqlDB.SetMaxIdleConns(20) // 最大空闲连接数
sqlDB.SetConnMaxLifetime(30 * time.Minute) // 连接最长存活时间
// 赋值给全局DB变量
global.DB = db
}