Reproducible experiments exploring TiDB ecosystem behavior, compatibility gaps,
and troubleshooting patterns.
| Lab |
Description |
Type |
| lab-00 |
Build DM Docker images from tiflow source (branch, PR, multi-PR) |
Scripted |
| lab-01 |
MariaDB 10.6.13 privilege fix & workarounds |
Manual |
| lab-02 |
Legacy MariaDB full-load precheck & target fixups |
Manual |
| lab-03 |
Foreign keys and safe mode (short-term workaround) |
Manual |
| lab-04 |
Binlog format requirements (ROW / STATEMENT / MIXED) |
Scripted |
| lab-05 |
Shard merge migration (3 MySQL shards → TiDB, pessimistic mode) |
Scripted |
| lab-06 |
LOCK TABLES privilege and consistency modes (vanilla MySQL vs RDS) |
Scripted |
| lab-07 |
Foreign key v8.5.6 fix validation (13 scenarios, 3 PRs) |
Scripted |
| lab-08 |
Column-level desensitization workarounds (source-side trigger, masking view) |
Scripted |
| lab-09 |
MySQL 8.4 compatibility: full-load + incremental validation + Dumpling workaround |
Scripted |
| Lab |
Description |
Type |
| lab-01 |
View dependencies (ordering + restore correctness) |
Scripted |
| lab-02 |
Partitioned export performance (ORDER BY + composite key) |
Investigation |
| Lab |
Description |
Type |
| lab-01 |
Base64 decoding with IMPORT INTO ... SET |
Manual |
| Lab |
Description |
Type |
| lab-01 |
CREATE VIEW privilege required by Lightning conflict_view (logical + physical modes, 8 scenarios) |
Manual |
| Lab |
Description |
Type |
| lab-01 |
Data type validation: MySQL vs TiDB |
Scripted |
| lab-02 |
TiCDC syncpoint + sync-diff-inspector validation |
Scripted |
| Lab |
Description |
Type |
| lab-01 |
SELECT ... FOR UPDATE OF: base table vs alias |
Manual |
| lab-02 |
CREATE TABLE constraints and generated columns |
Manual |
| lab-03 |
Vector store basics: VECTOR columns, TiFlash, HNSW indexes |
Project |
| lab-04 |
FK and supporting index: MySQL 8.4 vs TiDB 8.5+ |
Manual |
| lab-05 |
Hibernate ORM TiDB CI |
Project |
| lab-06 |
Recursive CTE fan-out: MySQL vs PostgreSQL |
Manual |
| lab-07 |
VARCHAR length enforcement in non-strict SQL mode |
Investigation |
| lab-08 |
SQL proxy switchover: TiProxy vs HAProxy vs ProxySQL |
Scripted |
| lab-09 |
DNS failover: client behavior during endpoint resolution changes |
Scripted |
| lab-10 |
Cloud DNS failover: Dedicated ↔ Essential via CoreDNS CNAME |
Scripted |
| lab-11 |
Cloud proxy failover: HAProxy (L4) vs ProxySQL (L7) on EC2 |
Scripted |
| lab-13 |
Inline FK syntax: silent accept-and-ignore across 8 engines |
Manual |
| lab-14 |
TiDB / TiKV / PD admin-endpoint binding defaults (flag inventory, bind audit, network reach) |
Investigation |
| lab-15 |
TiDB cluster startup behavior with and without inter-component TLS (TLS-off vs TLS-on across bare process, multi-container deploy, and TiDB Operator; tiup playground baseline only) |
Investigation |
Prerequisites: Docker, mysql client, TiUP (optional).
Pick a lab from the index. Each lab's primary .md file has a "Tested
Environment" section and either a How to Run section or step-by-step
instructions.
See LAB_AUTHORING_GUIDE.md. Templates are in
labs/_templates/.
MIT