> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/open-source/use-harness-open-source/pipelines-1/samples/mariadb.md).

# Mariadb

This guide covers configuring continuous integration pipelines for projects that have a MariaDB dependency.

## Basic Example <a href="#basic-example" id="basic-example"></a>

In the below example we demonstrate a pipeline that launches MariaDB as a background step. The database server will be available at `database:3306`, where the hostname matches the background step name.

```yaml
kind: pipeline
spec:
  stages:
  - type: ci
    spec:
      steps:
      - name: database
        type: background
        spec:
          container: mariadb
          envs:
            MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
            MYSQL_DATABASE: test

      - name: test
        type: run
        spec:
          container: mariadb
          script: |-
            sleep 15
            mariadb -u root -h database --execute="SELECT VERSION();"
```

## Database Settings <a href="#database-settings" id="database-settings"></a>

The official MariaDB image provides environment variables used at startup to create the default username, password, database and more. Please see the official image [documentation](https://hub.docker.com/_/mariadb/) for more details.

```yaml
      - name: database
        type: background
        spec:
          container: mariadb
          envs:
            MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
            MYSQL_DATABASE: test
```

## Common Problems <a href="#common-problems" id="common-problems"></a>

### Initialization <a href="#initialization" id="initialization"></a>

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

```yaml
      - name: test
        type: run
        spec:
          container: mariadb
          script: |-
            sleep 15
            mariadb -u root -h database --execute="SELECT VERSION();"
```

### Incorrect Hostname <a href="#incorrect-hostname" id="incorrect-hostname"></a>

You cannot use `127.0.0.1` or `localhost` to connect with the MariaDB container. If you are unable to connect to MariaDB please verify you are using the correct hostname, corresponding with the name of the container.

Bad:

```yaml
      - name: test
        type: run
        spec:
          container: mariadb
          script: |-
            sleep 15
            mariadb -u root -h localhost --execute="SELECT VERSION();"
```

Good:

```yaml
      - name: test
        type: run
        spec:
          container: mariadb
          script: |-
            sleep 15
            mariadb -u root -h database --execute="SELECT VERSION();"
```
