10

错误,用户 'root'@'localhost' 的访问被拒绝(使用密码:YES) 我正在尝试在 Github Actions 中使用 mysql 服务,但没有成功。我收到以下错误

用户'root'@'localhost'的访问被拒绝(使用密码:YES)

我的工作如下:

test:
  name: Test
  needs: install
  services:
    mysql:
      image: mysql:8.0
      ports:
        - '8888:3306'
      env:
        MYSQL_ROOT_PASSWORD: rootpass
        MYSQL_DATABASE: test
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@master
    - uses: actions/setup-node@master
      with:
        node-version: '10.x'
    - run: mysql --port 8888 -u root -prootpass -e 'CREATE DATABASE IF NOT EXISTS test;'

我似乎无法让它工作。任何帮助表示赞赏。可以在此处找到我的测试设置存储库的拉取请求:https ://github.com/morsby/medmcq/pull/399

4

1 回答 1

10

我花了一些时间尝试不同的事情来让它发挥作用。我找到了一个解决方案,但老实说,我不确定它为什么会起作用。我只是添加-h 127.0.0.1到mysql命令中。

我还添加了健康检查标志以options确保服务能够接受请求。

这是一个工作流程:

name: CI
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    services:
      mysql:
        image: mysql:8.0
        env:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: test
        ports:
            - '8888:3306'
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
    steps:
      - uses: actions/checkout@v1
      - run: mysql -h 127.0.0.1 --port 8888 -u root -ppassword -e 'CREATE DATABASE IF NOT EXISTS test;'
于 2019-10-04T05:11:22.353 回答