Trying to create a simple api. getting the following error:
Status: dial tcp [::1]:3306: connect: connection refused panic: sql: database is closed
I believe the db is running. I can see the tables using mysql -uroot.
here is my main.go file:
package main
import (
"fmt"
"github.com/jinzhu/gorm"
"resource-api/Config"
"resource-api/Models"
"resource-api/Routes"
)
var err error
func main() {
Config.DB, err = gorm.Open("mysql", Config.DbURL(Config.BuildDBConfig()))
if err != nil {
fmt.Println("Status:", err)
}
defer Config.DB.Close()
Config.DB.AutoMigrate(&Models.Client{})
r := Routes.SetupRouter()
//running
r.Run()
}
here is
Config/Database.go:
//
package Config
import (
"fmt"
"github.com/jinzhu/gorm"
)
var DB *gorm.DB
// DBConfig represents db configuration
type DBConfig struct {
Host string
Port int
User string
DBName string
Password string
}
func BuildDBConfig() *DBConfig {
dbConfig := DBConfig{
Host: "localhost",
Port: 3306,
User: "root",
Password: "",
DBName: "resourcesdb",
}
return &dbConfig
}
func DbURL(dbConfig *DBConfig) string {
return fmt.Sprintf(
"%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local",
dbConfig.User,
dbConfig.Password,
dbConfig.Host,
dbConfig.Port,
dbConfig.DBName,
)
}