mysql.go 766 B

12345678910111213141516171819202122232425262728293031
  1. package mysql
  2. import (
  3. "database/sql"
  4. "fmt"
  5. "gorm.io/driver/mysql"
  6. "gorm.io/gorm"
  7. setting "icloudapp.cn/tools/config"
  8. )
  9. var DBConn *gorm.DB
  10. func Init(cfg *setting.MySQLConfig) {
  11. dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local",
  12. cfg.User, cfg.Password, cfg.Host, cfg.DB)
  13. sqlDB, err := sql.Open("mysql", dsn)
  14. if err != nil {
  15. panic(fmt.Sprintf("sql.Open err, \v", err))
  16. }
  17. sqlDB.SetMaxOpenConns(cfg.MaxOpenConns) //最大连接数
  18. sqlDB.SetMaxOpenConns(cfg.MaxIdleConns)
  19. gormDB, err := gorm.Open(mysql.New(mysql.Config{
  20. Conn: sqlDB,
  21. }), &gorm.Config{
  22. DisableForeignKeyConstraintWhenMigrating: true, //禁用外键生成
  23. })
  24. if err != nil {
  25. panic(fmt.Sprintf("链接数据库失败\v", err))
  26. }
  27. DBConn = gormDB
  28. }