inno find

Search a MySQL data directory for pages matching a given page number.

Synopsis

inno find -d <datadir> -p <page> [-c <checksum>] [-s <space_id>] [--first] [--json] [--page-size <size>]

Description

Recursively discovers all .ibd files under a MySQL data directory, opens each as a tablespace, and reads the FIL header of every page looking for a matching page_number field. This is useful for locating which tablespace file contains a specific page when you have a page number from an error log or diagnostic tool.

Optional filters narrow results when the same page number appears in multiple tablespaces:

  • --checksum: Only match pages whose stored checksum (bytes 0-3 of the FIL header) equals the given value.
  • --space-id: Only match pages whose space ID (bytes 34-37 of the FIL header) equals the given value.

With --first, searching stops after the first match across all files, providing a fast lookup when only one hit is expected.

A progress bar is displayed for the file-level scan (suppressed in --json mode).

Flags

FlagShortRequiredDefaultDescription
--datadir <path>-dYes--MySQL data directory path to search.
--page <number>-pYes--Page number to search for across all tablespace files.
--checksum <value>-cNo--Only match pages with this stored checksum value.
--space-id <id>-sNo--Only match pages in this tablespace (by space ID).
--first--NoOffStop after the first match for faster lookups.
--json--NoOffOutput in JSON format.
--page-size <size>--NoAuto-detectOverride page size.

Examples

Search for page 3 across all tablespaces

inno find -d /var/lib/mysql -p 3

Search with space ID filter

inno find -d /var/lib/mysql -p 3 -s 42

Stop at first match

inno find -d /var/lib/mysql -p 3 --first

JSON output

inno find -d /var/lib/mysql -p 3 --json | jq '.matches'

Search with checksum filter

inno find -d /var/lib/mysql -p 3 -c 2741936599

Output

Text Mode

Checking sakila/actor.ibd..
Checking sakila/film.ibd..
Found page 3 in sakila/actor.ibd (checksum: 2741936599, space_id: 42)

Found 1 match(es) in 2 file(s) searched.

If no match is found:

Page 3 not found in any .ibd file.

JSON Mode

{
  "datadir": "/var/lib/mysql",
  "target_page": 3,
  "matches": [
    {
      "file": "sakila/actor.ibd",
      "page_number": 3,
      "checksum": 2741936599,
      "space_id": 42
    }
  ],
  "files_searched": 2
}