beego-yaml-viper 配置数据库连接
定义config.yaml文件
mysql: driver: mysql user: root password: root host: 127.0.0.1 port: 8889 database: 2204a redis: addr: "127.0.0.1:6379" password: "" db: 0
在main.go文件中
package main
import (
"github.com/beego/beego/v2/client/orm"
beego "github.com/beego/beego/v2/server/web"
"github.com/go-redis/redis"
_ "github.com/go-sql-driver/mysql"
"github.com/siddontang/go/log"
"github.com/spf13/viper"
_ "house/routers"
)
var redisClient *redis.Client
func init() {
viper.SetConfigFile("conf/config.yaml")
err := viper.ReadInConfig()
if err != nil {
log.Fatalf("配置文件读取失败 %s", err)
}
orm.RegisterDriver("mysql", orm.DRMySQL)
// 从配置文件中获取数据库连接信息
dbDriver := viper.GetString("mysql.driver")
dbUser := viper.GetString("mysql.user")
dbPassword := viper.GetString("mysql.password")
dbHost := viper.GetString("mysql.host")
dbPort := viper.GetString("mysql.port")
dbDatabase := viper.GetString("mysql.database")
// 构建数据库连接字符串
orm.RegisterDataBase("default", dbDriver, dbUser+":"+dbPassword+"@tcp("+dbHost+":"+dbPort+")/"+dbDatabase+"?charset=utf8")
/*
配置redis
*/
redisAddr := viper.GetString("redis.addr")
redisPassword := viper.GetString("redis.password")
redisDB := viper.GetInt("redis.db")
// 建立 Redis 连接
redisClient = redis.NewClient(&redis.Options{
Addr: redisAddr,
Password: redisPassword,
DB: redisDB,
})
redisClient.Set("hello", "hello", 0)
}
func main() {
beego.Run()
}

浙公网安备 33010602011771号