Where Does MLflow Store Tracking Data?
MLflow tracking data lands next to your code: mlruns for older setups, mlflow.db since 3.7. Local defaults plus the tracking URI override.
Last updated
MLflow defaults to storing tracking data wherever you launched the code. Older versions write metadata and artifacts into ./mlruns. Since 3.7 the default backend is a SQLite file, ./mlflow.db, in the same directory. Both are launch directory relative, which is why every project folder grows its own copy.
Production moves this to a tracking server with Postgres and blob storage. The MLFLOW_TRACKING_URI variable decides which world you are in, and an unset variable means local files. The UI reads whichever backend the tracking URI names, so point it at the same directory to see your runs.
Where MLflow stores this, by platform
.\mlruns and .\mlflow.db (in the launch directory)
Legacy file store plus the 3.7 default SQLite backend. Artifacts default beside them. Override everything with MLFLOW_TRACKING_URI or mlflow.set_tracking_uri. Same relative layout on every OS.
./mlruns and ./mlflow.db (in the launch directory)
Identical CWD relative layout. Run mlflow ui --backend-store-uri sqlite:///mlflow.db from the same directory to browse a SQLite backed project.
./mlruns and ./mlflow.db (in the launch directory)
Same as Mac. Server mode instead writes wherever --backend-store-uri and --artifacts-destination point, often Postgres plus S3, so check the server flags first.
Frequently asked questions
Why do I have mlruns on one machine and mlflow.db on another?
Check the version. MLflow 3.7 changed the default from file store ./mlruns to SQLite ./mlflow.db, while older installs keep writing mlruns. Both sit in the launch directory, so look for whichever your version creates.
How do I back up local experiments?
Copy the mlruns folder and the mlflow.db file together with the code. Artifacts may point at remote storage, in which case the local copy references files that live elsewhere.
Notice an outdated path? Let us know.