LMDB / libmdbx Database
| Format | LMDB / libmdbx Database |
|---|---|
| Short name | LMDB |
| Category | database |
| Platforms | Windows, macOS, Linux, iOS, Android |
| Crush support | Not yet supported |
| Status | Reviewed |
| Last reviewed | 2026-10-06 |
Forensic relevance
Memory-mapped key-value store built as a copy-on-write B+tree. LMDB and its derivative libmdbx share the design but are not file-compatible. An environment consists of a data file and a lock file: data.mdb and lock.mdb in a directory (LMDB), mdbx.dat and mdbx.lck (libmdbx), or in single-file mode any file name with a lock file carrying the suffix -lock (LMDB) or -lck (libmdbx). In single-file mode the data file often has no extension at all, so the meta page signature is the reliable indicator. The data file starts with two (LMDB) or three (libmdbx) meta pages holding the signature, the last committed transaction ID and the roots of the free-page tree and the main tree; named sub-databases are entries of the main tree. Pages released by a transaction are tracked in the free-page tree and reused later, so deleted and overwritten records can survive in pages no longer referenced, and the older meta pages point to earlier committed states. The lock file only holds the reader table and no records. Header fields use the byte order of the creating system (little-endian on common platforms). In LMDB 0.9 the signature offset depends on the page number size of the build: 16 on 64-bit, 12 on 32-bit. Used by OpenLDAP and many embedded applications, for example Monero node data (lmdb/data.mdb), Ethereum clients such as Erigon and Reth (libmdbx), and Flutter apps using Isar (see Isar Database).
Signatures
| Offset | Hex | ASCII (non-printable as .) | Description |
|---|---|---|---|
| offset 16 (0x10) | DE C0 EF BE 01 00 00 00 | ........ | LMDB 0.9 meta page: magic 0xBEEFC0DE and data version 1 (little-endian, 64-bit build) |
| offset 12 (0xC) | DE C0 EF BE 01 00 00 00 | ........ | LMDB 0.9 meta page: magic 0xBEEFC0DE and data version 1 (little-endian, 32-bit build) |
| offset 20 (0x14) | 03 11 4C EF BD 9D 65 59 | ..L...eY | libmdbx meta page: 56-bit magic 0x59659DBDEF4C11 with data version 3 (little-endian) |
Known extensions
.mdb, .dat
References
- LMDB 0.9 source: meta page, magic, file names (mdb.c) https://github.com/LMDB/lmdb/blob/mdb.RE/0.9/libraries/liblmdb/mdb.c
- libmdbx 0.12.4 internals: magic, data version, page header (source) https://github.com/isar/libmdbx/blob/v0.12.4/src/internals.h
- libmdbx (GitHub mirror) https://github.com/erthink/libmdbx
Cite this entry
Crush Format Reference, “LMDB / libmdbx Database”. https://kalink0.github.io/crush-forensics/formats/lmdb/ — source: crush/data/build_formats_db.py at commit 640a2a9928f4e36a976b89901512a8dce824d093, built 2026-10-21 06:46:19 UTC.
Entry in the source at this commit · Change history of the source · Report a correction