# How to setup multiple databases

**URL:** <https://discuss.circleci.com/t/how-to-setup-multiple-databases/939>\
**Category:** Databases\
**Tags:** how-to\
**Created:** [December 4, 2015, 6:19pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939 "2015-12-04T18:19:32Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![skylinezum](https://avatars.discourse-cdn.com/v4/letter/s/9d8465/32.png) [@skylinezum](https://discuss.circleci.com/u/skylinezum)\
**Post date:** [December 4, 2015, 6:19pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/1 "2015-12-04T18:19:32Z")

</div>

Hi,

Figured it out:  
In my circl.yml

```auto
## Customize database setup
database:
  override:
    - mysql -u ubuntu -e "create database circle_test_account"
    - mysql -u ubuntu -e "create database circle_test_fs"
    - mysql -u ubuntu circle_test_account < test_account.sql
    - mysql -u ubuntu circle_test_fs < test_fs.sql

```

Thanks

---

<div class="post-metadata">

**Author:** ![levlaz](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/levlaz/32/36978_2.png) [@levlaz](https://discuss.circleci.com/u/levlaz)\
**Post date:** [December 29, 2015, 4:51am UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/2 "2015-12-29T04:51:40Z")

</div>

Thank you for sharing this!

---

<div class="post-metadata">

**Author:** ![akahn](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/akahn/32/1260_2.png) [@akahn](https://discuss.circleci.com/u/akahn)\
**Post date:** [January 26, 2016, 3:05pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/3 "2016-01-26T15:05:47Z")

</div>

Thank you for this. This should be added to the official documentation.

---

<div class="post-metadata">

**Author:** ![hadv](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/hadv/32/17324_2.png) [@hadv](https://discuss.circleci.com/u/hadv)\
**Post date:** [November 3, 2017, 6:42am UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/4 "2017-11-03T06:42:54Z")

</div>

How to do the same things on CircleCI 2.0 with docker mysql image? I run command like CircleCI 1.0 but it report cannot connect as below

> ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)  
> Exited with code 1

below is my config.yml

```
  - run:
      name: Initialize Database
      command: |
        mysql -u root -ppassword -e "create database if not exists testdb1 character set utf8mb4 collate utf8mb4_unicode_ci"
        mysql -u root -ppassword -e "create database if not exists testdb2 character set utf8mb4 collate utf8mb4_unicode_ci"
        php artisan migrate:refresh --no-interaction
        php artisan db:seed

```

---

<div class="post-metadata">

**Author:** ![FelicianoTech](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/felicianotech/32/21348_2.png) [@FelicianoTech](https://discuss.circleci.com/u/FelicianoTech)\
**Post date:** [November 3, 2017, 9:35pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/5 "2017-11-03T21:35:06Z")

</div>

Read the readme of the MySQL Docker image you are using. Most of them use environment variables to setup an initial database.

Here’s the Docker Library MySQL image for example: [https://hub.docker.com/\_/mysql/](https://hub.docker.com/_/mysql/)

---

<div class="post-metadata">

**Author:** ![hadv](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/hadv/32/17324_2.png) [@hadv](https://discuss.circleci.com/u/hadv)\
**Post date:** [November 4, 2017, 4:10am UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/6 "2017-11-04T04:10:49Z")

</div>

Okay, actually the problem is to create multiple database in CircleCI 2.0. Finally I come with two mysql docker images with different port.

---

<div class="post-metadata">

**Author:** ![esposito](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/esposito/32/11194_2.png) [@esposito](https://discuss.circleci.com/u/esposito)\
**Post date:** [March 6, 2018, 12:44pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/7 "2018-03-06T12:44:00Z")

</div>

@hadv Could you share an example config file for that setup?

---

<div class="post-metadata">

**Author:** ![esposito](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/esposito/32/11194_2.png) [@esposito](https://discuss.circleci.com/u/esposito)\
**Post date:** [March 6, 2018, 12:53pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/8 "2018-03-06T12:53:58Z")

</div>

@skylinezum Could you share an example config.yml of this setup?

---

<div class="post-metadata">

**Author:** ![hadv](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/hadv/32/17324_2.png) [@hadv](https://discuss.circleci.com/u/hadv)\
**Post date:** [March 6, 2018, 3:18pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/9 "2018-03-06T15:18:18Z")

</div>

Some things like below @esposito

```
version: 2
jobs:
  build:
    docker:
      - image: php:7.0-apache
        environment:
          APP_ENV: testing
          APP_DEBUG: true
          APP_KEY: base64:H2lnWgQiH23t04sHcwDZ8VbLqQCD5J8hpVMdylqDkp0=
          DB_CONNECTION: mysql
          DB_HOST: 127.0.0.1
          DB_PORT: 3306
          DB_DATABASE: pet
          DB_USERNAME: root
          DB_PASSWORD: password
          DB2_HOST: 127.0.0.1
          DB2_PORT: 3307
          DB2_DATABASE: platform
          DB2_USERNAME: root
          DB2_PASSWORD: password
          DB3_HOST: 127.0.0.1
          DB3_PORT: 3308
          DB3_DATABASE: event
          DB3_USERNAME: root
          DB3_PASSWORD: password
          CACHE_DRIVER: file
          QUEUE_DRIVER: sync
      - image: circleci/mysql:5.7
        environment:
          MYSQL_DATABASE: pet
          MYSQL_ROOT_PASSWORD: password
      - image: hadv/mysql:5.7
        environment:
          MYSQL_DATABASE: platform
          MYSQL_ROOT_PASSWORD: password
      - image: hadv/mysql3308:5.7
        environment:
          MYSQL_DATABASE: event
          MYSQL_ROOT_PASSWORD: password
    working_directory: /var/www/html 

```

Hope this help!

---

<div class="post-metadata">

**Author:** ![esposito](https://sea2.discourse-cdn.com/circleci/user_avatar/discuss.circleci.com/esposito/32/11194_2.png) [@esposito](https://discuss.circleci.com/u/esposito)\
**Post date:** [March 6, 2018, 3:30pm UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/10 "2018-03-06T15:30:27Z")

</div>

Super, thanks!

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/circleci/original/3X/5/1/511608acda8e85906e15909b57bd0a46c1dbe291.png) [@system](https://discuss.circleci.com/u/system)\
**Post date:** [June 18, 2018, 11:41am UTC](https://discuss.circleci.com/t/how-to-setup-multiple-databases/939/11 "2018-06-18T11:41:41Z")

</div>


