packagemainimport("log""github.com/dgraph-io/badger/v4")funcmain(){db,err:=badger.Open(badger.DefaultOptions("/tmp/badger"))iferr!=nil{panic(err)}deferfunc(){iferr=db.Close();err!=nil{log.Printf("close db error: %v",err)}}()// do something with db}
packagemainimport("log""sync""github.com/dgraph-io/badger/v4")funcmain(){db,err:=badger.Open(badger.DefaultOptions("badgerdb"))iferr!=nil{panic(err)}deferfunc(){iferr=db.Close();err!=nil{log.Printf("close db error: %v",err)}}()varwg=&sync.WaitGroup{}wg.Go(func(){db1,err1:=badger.Open(badger.DefaultOptions("badgerdb"))iferr1!=nil{log.Printf("open db twice error: %v",err1)return}iferr:=db1.Close();err!=nil{log.Printf("close db error: %v",err)}})wg.Wait()}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
badger 2026/06/01 09:58:16 INFO: All 0 tables opened in 0s
badger 2026/06/01 09:58:16 INFO: Discard stats nextEmptySlot: 0
badger 2026/06/01 09:58:16 INFO: Set nextTxnTs to 0
2026/06/01 09:58:16 open db twice error: Cannot acquire directory lock on "badgerdb". Another process is using this Badger database. err: resource temporarily unavailable
badger 2026/06/01 09:58:16 INFO: Lifetime L0 stalled for: 0s
badger 2026/06/01 09:58:16 INFO:
Level 0 [ ]: NumTables: 00. Size: 0 B of 0 B. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 64 MiB
Level 1 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 2 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 3 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 4 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 5 [ ]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level 6 [B]: NumTables: 00. Size: 0 B of 10 MiB. Score: 0.00->0.00 StaleData: 0 B Target FileSize: 2.0 MiB
Level Done
packagemainimport("log""github.com/dgraph-io/badger/v4")funcmain(){db,err:=badger.Open(badger.DefaultOptions("").WithInMemory(true))iferr!=nil{panic(err)}deferfunc(){iferr=db.Close();err!=nil{log.Printf("close db error: %v",err)}}()// do something with db}