Running a MySQL Server Container with Test Data

This directory contains a Dockerfile that builds a Docker image derived the MySQL Server 8.0 image. It includes SQL programs that popularize the following datasets:

  1. Churn from Kaggle
  2. Irises classfication from TensorFlow

We can run a Docker container of it for unit testing.

Build the SQLFlow Data Image

cd example/datasets
docker build -t sqlflow:data .

Run a SQLFlow Data Container

docker run --rm -d --name sqlflowdata \
   -p 3306:3306 \

Popularize Datasets

Popularize the databases and tables with commands below:

docker exec -it sqlflowdata bash

To popularize the Churn dataset into churn:

cat /popularize_churn.sql | mysql -uroot -proot

To popularize the Irises dataset into iris:

cat /popularize_iris.sql | mysql -uroot -proot

To prepare database for storing machine learning models:

echo "CREATE DATABASE IF NOT EXISTS sqlflow_models;" | mysql -uroot -proot

Test a Query

In the container, run below command to test if tables exist.

echo "select count(*) from churn.test;" | mysql -uroot -proot

It should print the number of rows as the following:



  1. It usually takes about 15 seconds to bring up the MySQL Server. If you try to connect it before that, you may see the following error
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

After commands executes successfully and data are popularized, go back to Installation page.