package db import ( "database/sql" "encoding/json" "log" "os" _ "github.com/go-sql-driver/mysql" ) type Config struct { Host string `json:"databaseHost"` Port string `json:"databasePort"` User string `json:"databaseUser"` Password string `json:"databasePassword"` DBName string `json:"database"` } var DB *sql.DB func InitDB() { config := loadConfig() dsn := config.User + ":" + config.Password + "@tcp(" + config.Host + ":" + config.Port + ")/" + config.DBName var err error DB, err = sql.Open("mysql", dsn) if err != nil { log.Fatal("Error connecting to database:", err) } err = DB.Ping() if err != nil { log.Fatal("Error pinging database:", err) } } func loadConfig() Config { file, err := os.ReadFile("config.json") if err != nil { log.Fatal("Error reading config file:", err) } var config Config err = json.Unmarshal(file, &config) if err != nil { log.Fatal("Error parsing config file:", err) } return config }