Menu

Download and Install the MySQL Sakila Sample Database

Download the official MySQL Sakila ZIP or TAR.GZ, import its schema and sample data, and verify the database with MySQL queries.

Sakila is MySQL’s sample DVD-rental database. Download the official ZIP archive or TAR.GZ archive. This guide explains the files, import steps, and verification queries. See MySQL’s official Sakila installation guide for complete instructions.

Download the Sakila database

MySQL also lists both archives on its example database downloads page.

The archive contains two SQL scripts and a MySQL Workbench model:

  • sakila-schema.sql: Creates the database structure, including tables, views, stored routines, and triggers.
  • sakila-data.sql: Loads the sample data and includes trigger definitions that are applied after the initial data load.
  • sakila.mwb: A MySQL Workbench model for exploring the database structure.

Before you start

Start a MySQL server and use an account that can create databases. A non-root account is sufficient if it has the required privileges.

Install the Sakila sample database

Follow these steps to install Sakila:

  1. Unzip the downloaded zip file to a temporary location, for example C:\temp\ or /tmp/. When you unzip the archive, it creates a folder named sakila-db that contains sakila-schema.sql and sakila-data.sql files.

  2. Use the MySQL command-line client to connect to the server. Replace db_admin with an account that can create databases:

    mysql --user=db_admin --password
    

    Enter the password when prompted. The password is not included in the command or shell history.

  3. At the mysql> prompt, run both SQL scripts. Update the paths to match where you extracted the archive:

    SOURCE /tmp/sakila-db/sakila-schema.sql;
    SOURCE /tmp/sakila-db/sakila-data.sql;
    

    On Windows, use forward slashes in the SOURCE path, for example C:/temp/sakila-db/sakila-schema.sql.

  4. Verify the installation. SHOW FULL TABLES should return 23 rows, and both sample tables below should contain 1,000 rows:

    USE sakila;
    
    Output
    Database changed
    
    SHOW FULL TABLES;
    
    Output
    +----------------------------+------------+
    | Tables_in_sakila           | Table_type |
    +----------------------------+------------+
    | actor                      | BASE TABLE |
    | actor_info                 | VIEW       |
    | address                    | BASE TABLE |
    | category                   | BASE TABLE |
    | city                       | BASE TABLE |
    | country                    | BASE TABLE |
    | customer                   | BASE TABLE |
    | customer_list              | VIEW       |
    | film                       | BASE TABLE |
    | film_actor                 | BASE TABLE |
    | film_category              | BASE TABLE |
    | film_list                  | VIEW       |
    | film_text                  | BASE TABLE |
    | inventory                  | BASE TABLE |
    | language                   | BASE TABLE |
    | nicer_but_slower_film_list | VIEW       |
    | payment                    | BASE TABLE |
    | rental                     | BASE TABLE |
    | sales_by_film_category     | VIEW       |
    | sales_by_store             | VIEW       |
    | staff                      | BASE TABLE |
    | staff_list                 | VIEW       |
    | store                      | BASE TABLE |
    +----------------------------+------------+
    23 rows in set (0.01 sec)
    
    SELECT COUNT(*) FROM film;
    
    Output
    +----------+
    | COUNT(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    
    SELECT COUNT(*) FROM film_text;
    
    Output
    +----------+
    | COUNT(*) |
    +----------+
    |     1000 |
    +----------+
    1 row in set (0.00 sec)
    

Compatibility note

The Sakila scripts use version-specific MySQL comments, so some schema details depend on your server version. For example, the spatial address.location column is included for MySQL 5.7.5 and later. See the official Sakila installation notes and change history.