Go에서 DB Open이 제대로 됬는지 확인하는법.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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()
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()
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을 호출해라.

ㅋㅋㅋㅋㅋㅋㅋ

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
err = dbCon.Ping()
if err != nil {
panic(err)
}
err = dbCon.Ping() if err != nil { panic(err) }
err = dbCon.Ping()
if err != nil {
    panic(err)
}

그냥 밑에 이거 추가해주면 바로 커넥트 테스트 해서 잘 되는지 확인 가능함.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다