mysqldump在github操作中执行phpunit时误用shell内置错误

mysqldump在github操作中执行phpunit时误用shell内置错误,mysql,laravel,phpunit,github-actions,spatie,Mysql,Laravel,Phpunit,Github Actions,Spatie,我正在使用github操作部署我的laravel应用程序,在我的测试工作流程中出现以下错误: Spatie\DbDumper\Exceptions\DumpFailed: The dump process failed with exitcode 2 : Misuse of shell builtins : mysqldump: Got error: 1045: Access denied for user 'alessandro'@'localhost' (using password: YE

我正在使用github操作部署我的laravel应用程序,在我的测试工作流程中出现以下错误:

Spatie\DbDumper\Exceptions\DumpFailed: The dump process failed with exitcode 2 : Misuse of shell builtins : mysqldump: Got error: 1045: Access denied for user 'alessandro'@'localhost' (using password: YES) when trying to connect
试验结果:

public function testDBBackup() {
        $new_file_name = storage_path('db_backup/'.env('DB_DATABASE')).'/'.env('DB_DATABASE')."__".now()->format('Y-m-d_H-i').".sql.gz";

        $this->artisan('db:backup')
            ->expectsOutput('command started')
            ->expectsOutput('command finished')
            ->assertExitCode(0);

        self::assertTrue(file_exists($new_file_name));
    }
它执行以下代码:

MySql::create()
                ->setDbName($database)
                ->setUserName(env('DB_USERNAME'))
                ->setPassword(env('DB_PASSWORD'))
                ->setHost('localhost') // makes no difference for error if present
                ->addExtraOption('-u ' . env('DB_USERNAME', 'forge'))  // makes no difference for error if present
                ->useCompressor(new GzipCompressor())
                ->dumpToFile($path.'/'.$database.'__'.$time.'.sql.gz');
使用此软件包的:

仅当我执行此github操作管道时,才会发生错误:

name: Tests
on:
  push:
    branches-ignore: [master]

jobs:
  phpunit:
    name: Run PHP Unit Tests
    runs-on: ubuntu-latest

    services:
      mysql:
        image: mysql:8.0
        env:
          MYSQL_ROOT_PASSWORD: ubuntu
          MYSQL_DATABASE: circle_test
        ports:
          - '8888:3306'
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

    steps:
      - uses: actions/checkout@v2

      - name: Configure PHP 8.0
        uses: shivammathur/setup-php@master
        with:
          php-version: 8.0
          extensions: mbstring, ctype, fileinfo, openssl, PDO, bcmath, json, tokenizer, xml

      - name: create test database
        run: |
          mysql --version
          sudo apt-get install -y mysql-client
          sudo systemctl start mysql
          mysql -h 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -u root -pubuntu -e 'CREATE DATABASE IF NOT EXISTS circle_test;'
          mysql -h 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -u root -pubuntu -e 'CREATE USER "alessandro"@"%" IDENTIFIED BY "ubuntu";'
          mysql -h 127.0.0.1 --port ${{ job.services.mysql.ports['3306'] }} -u root -pubuntu -e 'GRANT ALL PRIVILEGES ON * . * TO "alessandro"@"%"; FLUSH PRIVILEGES;'
      - name: Composer install
        env:
          COMPONENTS_AT: ${{ secrets.COMPONENTS_AT }}
        run: |
          composer config -g github-oauth.github.com ${COMPONENTS_AT}
          composer install --no-interaction --prefer-dist

      - name: Copy Enviroment and prepare enviroment
        run: |
          cp .env.testing_online .env
          php artisan key:generate

      - name: Migrate and Seed
        run: |
          php artisan migrate:fresh
          php artisan db:seed

      - name: Run Tests
        run: |
          php artisan config:clear
          vendor/bin/phpunit

在我的本地机器上,一切都运行良好,所以我认为这取决于Github动作MySQL配置,我没有考虑。我还使用DB用户“root”对其进行了测试。其他测试需要一个工作正常的DB连接

我已经检查过了:并且删除
~/.my.cnf
没有任何区别

我有以下database.php配置:

        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => false,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
            'dump' => [
                'dump_command_path' => '/usr/bin',
                'add_extra_option' => '-u ' . env('DB_USERNAME', 'forge'),
            ]
        ],

目前,我跳过了对github操作的测试。