Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

github actions - cannot connect to mysql

so I am trying to setup a laravel ci server with github actions. And, i am using edbizarro/gitlab-ci-pipeline-php:7.3 as my container, and I use the official mariadb docker as mysql service.:

services:
      mysql:
        image: mariadb:10.3
        env:
          MYSQL_USER: root
          MYSQL_PASSWORD: root
          MYSQL_ROOT_PASSWORD: root
        ports:
          - 13306:3306 
...

and I am trying to run, run mysql command to import db:

  - name: Setting Up DB
        run: |
          mysql -Tv -h mysql -P 13306 --protocol=tcp -u root -proot < ./storage/test.sql

And here are the several attempts I did:

| host               | error message                                                          |
|--------------------|------------------------------------------------------------------------|
| mysql,"${DB_HOST}" | ERROR 2005 (HY000): Unknown MySQL server host 'mysql' (-2)             |
| 0.0.0.0            | ERROR 2002 (HY000): Can't connect to MySQL server on '0.0.0.0' (115)   |
| 127.0.0.1          | ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115) |
| (without host)     | ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (99)  |

Not sure what else I can do here ...

here is what I also tried, all tells me that option don't exist:

 services:
      mysql:
        image: mariadb:10.3
        options: --bind_address=""
        env:
          MYSQL_USER: root
          MYSQL_PASSWORD: root
          MYSQL_ROOT_PASSWORD: root
        ports:
          - 13306:3306 

and I tried with options :

  1. --disable_bind_address
  2. --bind-address=""

Here are some log messages I got from github: (-Tv did not give anything useful)

docker.io/library/mariadb:10.3
/usr/bin/docker create --name 607ae471e5844570b9e2fcf4f57ed78a_mariadb103_d94369 --label 2b5be7 --workdir /__w/laravel/laravel --network github_network_ab8a7ba8c1624f95bdc2784147b4b5e1 --network-alias mysql -p 13306:3306 -e "MYSQL_USER=root" -e "MYSQL_PASSWORD=root" -e "MYSQL_ROOT_PASSWORD=root" -e "HOME=/github/home" -v "/home/runner/work":"/__w" -v "/home/runner/runners/2.157.3/externals":"/__e":ro -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" mariadb:10.3
 c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3
/usr/bin/docker start c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3
c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3
/usr/bin/docker ps --all --filter id=c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3 --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3 Up Less than a second
/usr/bin/docker port c3b10a5c4799a671f55c2f2b7a33803abd9228830be5e8821b51f10a2b2951b3
3306/tcp -> 0.0.0.0:13306
like image 841
Shuyi Avatar asked Sep 04 '19 16:09

Shuyi


People also ask

How do I fix MySQL connection refused?

Check that the DB username, DB password, database host, and database port are correct. (if you are unsure, reach out to your database administrator or check in your web hosting account for the up to date credentials). If the config file references host = "localhost" , you can try to change it to 127.0.

Can I use GitHub Actions?

GitHub Actions is free and available for use on any public repository and self-hosted runner. If you use GitHub-hosted runners or Actions on a private repository, you can still test Actions with the standard Actions allocations before switching to a paid model.

Can you use GitHub Actions for free?

GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners.


1 Answers

Maybe try like this :

 mysql: 
    image: mariadb:10.3 
    env:    
        MYSQL_ROOT_PASSWORD: root   
    ports:  
    - 3306:3306 
    options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

There is a healthcheck to be sure the service is healthy before connexion

like image 90
Sarah Abderemane Avatar answered Oct 07 '22 18:10

Sarah Abderemane