首页 > 解决方案 > github 操作 - 无法连接到 mysql

问题描述

所以我正在尝试使用 github 操作设置 laravel ci 服务器。而且,我正在edbizarro/gitlab-ci-pipeline-php:7.3用作我的容器,并且我使用官方 mariadb docker 作为 mysql 服务。:

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

我正在尝试运行,运行 mysql 命令导入数据库:

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

以下是我所做的几次尝试:

| 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)  |

不知道我还能在这里做什么......

这是我也尝试过的,都告诉我该选项不存在

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

我尝试了选项:

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

以下是我从 github 获得的一些日志消息:(-Tv 没有提供任何有用的信息)

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

标签: dockergithubmariadbgithub-actions

解决方案


也许试试这样:

 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

有一个健康检查,以确保服务在连接之前是健康的


推荐阅读