db.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package db
  2. import (
  3. "database/sql"
  4. "log"
  5. "app.yhyue.com/moapp/jybase/mongodb"
  6. "app.yhyue.com/moapp/jybase/mysql"
  7. "app.yhyue.com/moapp/jybase/redis"
  8. "github.com/gogf/gf/v2/frame/g"
  9. "github.com/gogf/gf/v2/os/gcfg"
  10. "github.com/gogf/gf/v2/os/gctx"
  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 JyMysql *mysql.Mysql
  33. var MgoLog mongodb.MongodbSim
  34. var MgoJy mongodb.MongodbSim
  35. // InitDatabases 初始化数据库
  36. func InitDatabases() {
  37. initDbCtx := gctx.New()
  38. // 初始化redis数据库
  39. redisAddr := g.Cfg().MustGet(initDbCtx, "databases.redis", "session=127.0.0.1:6379,other=127.0.0.1:6379").String()
  40. redis.InitRedis(redisAddr)
  41. log.Printf("初始化redis完成 %s\n", redisAddr)
  42. // 初始化mysql数据库
  43. var mysqlConf Mysql
  44. err := gcfg.Instance().MustGet(initDbCtx, "databases.mysql").Scan(&mysqlConf)
  45. if err != nil {
  46. log.Printf("mysql配置异常 %v\n", err)
  47. log.Fatal(err)
  48. }
  49. GateWatMySql = &mysql.Mysql{
  50. Address: mysqlConf.Address,
  51. UserName: mysqlConf.UserName,
  52. PassWord: mysqlConf.PassWord,
  53. DBName: mysqlConf.DBName,
  54. MaxOpenConns: mysqlConf.MaxOpenConns,
  55. MaxIdleConns: mysqlConf.MaxIdleConns,
  56. }
  57. GateWatMySql.Init()
  58. log.Printf("初始化Mysql完成 %+v\n", mysqlConf)
  59. //初始化jymysql数据库
  60. var jyMysqlConf Mysql
  61. err2 := gcfg.Instance().MustGet(initDbCtx, "databases.mysqlJy").Scan(&jyMysqlConf)
  62. if err2 != nil {
  63. log.Printf("jy mysql配置异常 %v\n", err)
  64. log.Fatal(err)
  65. }
  66. JyMysql = &mysql.Mysql{
  67. Address: jyMysqlConf.Address,
  68. UserName: jyMysqlConf.UserName,
  69. PassWord: jyMysqlConf.PassWord,
  70. DBName: jyMysqlConf.DBName,
  71. MaxOpenConns: jyMysqlConf.MaxOpenConns,
  72. MaxIdleConns: jyMysqlConf.MaxIdleConns,
  73. }
  74. JyMysql.Init()
  75. log.Printf("初始化jy Mysql完成 %+v\n", mysqlConf)
  76. // 初始化mongodb
  77. var mgoConf MgoConf
  78. if err := gcfg.Instance().MustGet(initDbCtx, "databases.mogLog").Scan(&mgoConf); err == nil {
  79. MgoLog = mongodb.MongodbSim{
  80. MongodbAddr: mgoConf.Address,
  81. Size: mgoConf.Size,
  82. DbName: mgoConf.DbName,
  83. ReplSet: mgoConf.ReplSet,
  84. UserName: mgoConf.UserName,
  85. Password: mgoConf.Password,
  86. }
  87. MgoLog.InitPool()
  88. log.Printf("初始化 mongodb log 完成 %+v\n", mgoConf)
  89. }
  90. //初始化 jy mongodb
  91. var jyMgoConf MgoConf
  92. if err := gcfg.Instance().MustGet(initDbCtx, "databases.mogJy").Scan(&jyMgoConf); err == nil {
  93. MgoJy = mongodb.MongodbSim{
  94. MongodbAddr: jyMgoConf.Address,
  95. Size: jyMgoConf.Size,
  96. DbName: jyMgoConf.DbName,
  97. ReplSet: jyMgoConf.ReplSet,
  98. }
  99. MgoJy.InitPool()
  100. log.Printf("初始化 mongodb log 完成 %+v\n", jyMgoConf)
  101. }
  102. }