Skip to content

MySQL configuration example

About MySQL

MySQL is the world's most popular open source database. Whether you are a fast-growing web property, technology ISV or large enterprise, MySQL can cost-effectively help you deliver high performance, scalable database applications.

More information about MySQL

How to add MySQL 8 to Qlico?

Add the following YAML to the services section of your docker-compose.yaml file.

qlico-core/docker-compose.yaml
  mysql8:
    image: mysql:8.0.37
    container_name: qlico-core_mysql8
    restart: unless-stopped
    logging:
      driver: none
    ports:
      - 3308:3306
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-qlico}
    volumes:
      - mysql-data8:/var/lib/mysql
    networks:
      - qlico-core

Add the following YAML to the volumes section of your docker-compose.yaml file.

qlico-core/docker-compose.yaml
  mysql-data8:
    name: qlico-core_mysql8-data
    driver: local

Example in a full docker-compose file

This is a large example, so you know where to place the MySQL service and volume.

qlico-core/docker-compose.yaml
---
# Author: Qlico <hello@qlico.dev>
services:
  traefik:
    image: traefik:v3.0.1
    container_name: qlico-core_traefik
    command: [ '--providers.docker', '--api.insecure' ]
    networks:
      - qlico-core
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - "traefik.http.routers.traefik.rule=Host(`traefik.qlico`)"
      - "traefik.http.services.traefik.loadbalancer.server.port=8080"
  mysql8:
    image: mysql:8.0.37
    container_name: qlico-core_mysql8
    restart: unless-stopped
    logging:
      driver: none
    ports:
      - 3308:3306
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-qlico}
    volumes:
      - mysql-data8:/var/lib/mysql
    networks:
      - qlico-core
volumes:
  mysql-data8:
    name: qlico-core_mysql8-data
networks:
  qlico-core:
    driver: bridge
    name: qlico-core

How to add MySQL 5 to Qlico?

Add the following YAML to the services section of your docker-compose.yaml file.

qlico-core/docker-compose.yaml
  mysql5:
    image: mysql:5.7.44
    container_name: qlico-core_mysql5
    logging:
      driver: none
    ports:
      - 3305:3306
    environment:
      MYSQL_USER: ${MYSQL_USERNAME:-root}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-qlico}
    volumes:
      - mysql-data5:/var/lib/mysql
    networks:
      - qlico-core

Add the following YAML to the volumes section of your docker-compose.yaml file.

  mysql-data5:
    name: qlico-core_mysql5-data
    driver: local

Example in a full docker-compose file

This is a large example, so you know where to place the MySQL service and volume.

qlico-core/docker-compose.yaml
---
# Author: Qlico <hello@qlico.dev>
services:
  traefik:
    image: traefik:v3.0.1
    container_name: qlico-core_traefik
    command: [ '--providers.docker', '--api.insecure' ]
    networks:
      - qlico-core
    ports:
      - 80:80
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    labels:
      - "traefik.http.routers.traefik.rule=Host(`traefik.qlico`)"
      - "traefik.http.services.traefik.loadbalancer.server.port=8080"
  mysql5:
    image: mysql:5.7.44
    container_name: qlico-core_mysql5
    logging:
      driver: none
    ports:
      - 3305:3306
    environment:
      MYSQL_USER: ${MYSQL_USERNAME:-root}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-qlico}
    volumes:
      - mysql-data5:/var/lib/mysql
    networks:
      - qlico-core
    driver: local
volumes:
  mysql-data5:
    name: qlico-core_mysql5-data
networks:
  qlico-core:
    driver: bridge
    name: qlico-core