> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Started with Percona Server

> VillageSQL built on Percona Server for MySQL 8.4.

VillageSQL also builds on **Percona Server**, a source-compatible fork of
MySQL that adds its own storage, performance, and observability features.

## What this is

A VillageSQL server built against the Percona 8.4 codebase instead of upstream
MySQL 8.4. The VillageSQL Extension Framework, its SQL commands, and its
extensions work the same way on both — a Percona build is a different
foundation underneath the same VillageSQL surface.

VillageSQL does not document Percona's own features. For anything about
Percona Server itself — its storage engines, tuning options, or configuration
— see [Percona's own documentation](https://docs.percona.com/percona-server/8.4/).

## What is not included

This build leaves out three of Percona's features.

**MyRocks.** The RocksDB storage engine is not built, so `SHOW ENGINES` does not
list `ROCKSDB` and no `rocksdb_*` system variable exists. A table that asks for
the engine fails:

```sql theme={null}
CREATE TABLE t (i INT) ENGINE=ROCKSDB;
-- ERROR 1286 (42000): Unknown storage engine 'ROCKSDB'
```

Restoring a dump from a Percona server stops at the first table that names the
engine, so tables created before that point stay and the rest are skipped.

**The KMIP keyring component.** `component_keyring_file`,
`component_keyring_kms`, and `component_keyring_vault` all ship and install.
`component_keyring_kmip` is not built, and installing it fails with
`ERROR 1126`.

**Percona's coredumper.** The `--coredumper` option is still accepted, because
the server registers it whether or not the library is built, and the library is
not built here.

Percona's other additions work normally, including the `percona_udf` component,
the audit log plugin, and the `USER_STATISTICS` and `TABLE_STATISTICS` views,
which fill in after `SET GLOBAL userstat = ON`.

## Identifying a Percona build

A Percona build reports a different codebase in its version string:

```sql theme={null}
SELECT @@villagesql_server_version;
-- Example output: percona-8.4_0.0.8-dev
```

See [System Reference](https://villagesql.com/docs/en/8.4/dev/reference.md#villagesql_server_version) for
what this variable means. VillageSQL refuses to upgrade a datadir from one
codebase (for example `mysql-8.4`) onto a server running a different one (for
example `percona-8.4`).

## Next Steps

> [card] [Install](https://villagesql.com/docs/en/8.4/dev/install-percona.md)
>
> Install the Percona build with the install script, Docker, or a source build.

> [card] [Installing Extensions](https://villagesql.com/docs/en/extensions/install.md)
>
> Add new types and functions to the server.

> [card] [System Reference](https://villagesql.com/docs/en/8.4/dev/reference.md)
>
> System views and variables for extension metadata and server state.

> [card] [Server Development Guide](https://villagesql.com/docs/en/8.4/dev/server-development.md)
>
> Debug, test, and contribute to the server code.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.