db.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package db
  2. import (
  3. "app.yhyue.com/moapp/jybase/mongodb"
  4. "app.yhyue.com/moapp/jybase/mysql"
  5. "app.yhyue.com/moapp/jybase/redis"
  6. "database/sql"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "github.com/gogf/gf/v2/os/gcfg"
  9. "github.com/gogf/gf/v2/os/gctx"
  10. "log"
  11. )
  12. type Mysql struct {
  13. Address string //数据库地址:端口
  14. UserName string //用户名
  15. PassWord string //密码
  16. DBName string //数据库名
  17. DB *sql.DB //数据库连接池对象
  18. MaxOpenConns int //用于设置最大打开的连接数,默认值为0表示不限制。
  19. MaxIdleConns int //用于设置闲置的连接数。
  20. }
  21. type MgoConf struct {
  22. Address string
  23. Size int
  24. DbName string
  25. ReplSet string
  26. UserName string
  27. Password string
  28. Collection string
  29. Collection_back string
  30. }
  31. var GateWatMySql *mysql.Mysql
  32. var MgoLog mongodb.MongodbSim
  33. // InitDatabases 初始化数据库
  34. func InitDatabases() {
  35. initDbCtx := gctx.New()
  36. // 初始化redis数据库
  37. redisAddr := g.Cfg().MustGet(initDbCtx, "databases.redis", "session=127.0.0.1:6379,other=127.0.0.1:6379").String()
  38. redis.InitRedis(redisAddr)
  39. log.Printf("初始化redis完成 %s\n", redisAddr)
  40. // 初始化mysql数据库
  41. var mysqlConf Mysql
  42. err := gcfg.Instance().MustGet(initDbCtx, "databases.mysql").Scan(&mysqlConf)
  43. if err != nil {
  44. log.Printf("mysql配置异常 %v\n", err)
  45. log.Fatal(err)
  46. }
  47. GateWatMySql = &mysql.Mysql{
  48. Address: mysqlConf.Address,
  49. UserName: mysqlConf.UserName,
  50. PassWord: mysqlConf.PassWord,
  51. DBName: mysqlConf.DBName,
  52. MaxOpenConns: mysqlConf.MaxOpenConns,
  53. MaxIdleConns: mysqlConf.MaxIdleConns,
  54. }
  55. GateWatMySql.Init()
  56. log.Printf("初始化Mysql完成 %+v\n", mysqlConf)
  57. // 初始化mongodb
  58. var mgoConf MgoConf
  59. if err := gcfg.Instance().MustGet(initDbCtx, "databases.mogLog").Scan(&mgoConf); err == nil {
  60. MgoLog = mongodb.MongodbSim{
  61. MongodbAddr: mgoConf.Address,
  62. Size: mgoConf.Size,
  63. DbName: mgoConf.DbName,
  64. ReplSet: mgoConf.ReplSet,
  65. UserName: mgoConf.UserName,
  66. Password: mgoConf.Password,
  67. }
  68. MgoLog.InitPool()
  69. log.Printf("初始化 mongodb log 完成 %+v\n", mgoConf)
  70. }
  71. }