docker-compose-all-mysql

MySQL and MariaDB docker containers of MySQL v5.5, v5.6, v5.7, v8.0, mariadb v10.0, v10.1, v10.2, v10.3

Stars
132
Committers
4

Create all mysql-server docker container.

Motivation

In order to make it easy to test whether applications can be started with different versions, such as upgrading mysql, we made it possible to start multiple mysql servers easily.

mysqlmysql docker-compose

Support MySQL version.

  • MySQL v5.5
  • MySQL v5.6
  • MySQL v5.7
  • MySQL v8.0
  • mariadb v10.0
  • mariadb v10.1
  • mariadb v10.2
  • mariadb v10.3

Usage

Install docker desktop

https://www.docker.com/products/docker-desktop

Install mysql-client

No need to install mysql client .

When connect-xxx.sh execute, the mysql client installed in the docker container is executed locally .

MySQL

connect-xxx.shMySQLmysql

Clone this repository

git clone [email protected]:treetips/docker-compose-all-mysql.git

Start mysql docker containers

$ docker-compose up -d

Connect any mysql-server on docker container

Connect remote mysql servers.

$ ./connect-mysql-5-5.sh
$ ./connect-mysql-5-6.sh
$ ./connect-mysql-5-6.sh
$ ./connect-mysql-8-0.sh
$ ./connect-mariadb-10-0.sh
$ ./connect-mariadb-10-1.sh
$ ./connect-mariadb-10-2.sh
$ ./connect-mariadb-10-3.sh

Wait for MySQL started before connecting.

MySQL

Optional

Customize mysql client settings

vi ./my.cnf

All the same connection setting except port.

Customize mysql server settings

$ vi ./mysql5.5/conf.d/my.cnf
$ vi ./mysql5.6/conf.d/my.cnf
$ vi ./mysql5.7/conf.d/my.cnf
$ vi ./mysql8.0/conf.d/my.cnf
$ vi ./mariadb10.0/conf.d/my.cnf
$ vi ./mariadb10.1/conf.d/my.cnf
$ vi ./mariadb10.2/conf.d/my.cnf
$ vi ./mariadb10.3/conf.d/my.cnf

Customize default schema, user, password

If you change database-schema or user or password or root-password, Edit .env .

DBroot .env

DB_DATABASE=work
DB_USER=worker
DB_PASSWORD=worker
DB_ROOT_PASSWORD=root

Remove logs

If you want to delete general.log and error.log and slow-query.log, execute clear_logs.sh .

general.log error.log clear_logs.sh

Customize init scripts

https://hub.docker.com/_/mysql/#initializing-a-fresh-instance

Execution order at startup

  1. ./common/initdb.d/common-init.(sh|sql) (executed commonly for all containers)
  2. ./(mysql|mariadb)X.X/initdb.d/xxx.(sh|sql) (executed for each container)

Initial data can be input at startup by customizing these.