Example MySQL Configuration

Updated 2 years ago by Admin

This guide covers configuring continuous integration pipelines for projects that have a MySQL dependency. If you’re new to Drone please read our Tutorial and build configuration guides first.


Basic Example

In the below example we demonstrate a pipeline that launches a MySQL service container. The server will be available at localhost:3306.

   1  kind: pipeline
2 type: kubernetes
3 name: default
4
5 steps:
6 - name: test
7 image: mysql
8 commands:
9 - sleep 15
10 - mysql -u root --execute="SELECT VERSION();"
11
12 services:
13 - name: database
14 image: mysql
15 environment:
16 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
17 MYSQL_DATABASE: test

Database Options

If you need to start the mysql container with additional runtime options you can override the entrypoint and command arguments.

services:
- name: database
image: mysql
entrypoint: [ "mysqld" ]
command: [ "--character-set-server=utf8mb4" ]

Database Settings

The official MySQL image provides environment variables used at startup to create the default username, password, database and more. Please see the official image documentation for more details.

   1  services:
2 - name: database
3 image: mysql
4 environment:
5 MYSQL_DATABASE: test
6 MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'


Common Problems

If you are unable to connect to the MySQL container please make sure you are giving MySQL adequate time to initialize and begin accepting connections.

   1  kind: pipeline
2 type: kubernetes
3 name: default
4
5 steps:
6 - name: test
7 image: mysql
8 commands:
9 - sleep 15
10 - mysql -u root -h database


How did we do?