tmp := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", cf.DB_ID, cf.DB_Password, cf.DB_IP, cf.DB_Port, cf.DB_DBName) dbCon, err := sql.Open("mysql", tmp) if err != nil { panic(err) } defer dbCon.Close()
go에서 mysql에 접속해서 기록하는걸 하는데 난 저 err 체크 하는 부분에서 db가 열리지 않았을때 걸릴줄 알았는데 오늘 삽질하다가 디비 서버가 꺼져있음에도 불구하고 저 부분이 넘어가는걸 확인함.
뭐지 하면서 검색해보다가 알게 된것인 go 표준함수인 sql.open 주석에 이렇게 써 있었음.
Open may just validate its arguments without creating a connection to the database. To verify that the data source name is valid, call Ping.
Open은 DB 커넥팅을 생성하지 않고 인자의 유효성만 검사함 제대로 연결되는지 확인할려면 Ping을 호출해라.
ㅋㅋㅋㅋㅋㅋㅋ
err = dbCon.Ping() if err != nil { panic(err) }
그냥 밑에 이거 추가해주면 바로 커넥트 테스트 해서 잘 되는지 확인 가능함.
답글 남기기