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() }