réponses
140 vues
Erreur dans GitHub Actions : Accès refusé à MySQL avec Laravel
Bonjour mes chers amis,
J'espère que vous passez une bonne journée. J'ai un problème que j'aimerais vous soumettre. J'utilise les GitHub Actions pour exécuter mes tests, et j'utilise MySQL comme base de données. Lorsque mon workflow est lancé, je rencontre une erreur :
1SQLSTATE[HY000] [1045] Accès refusé pour l'utilisateur 'root'@'172.18.0.1' (mot de passe non spécifié) (Connexion : mysql, SQL : sélectionnez le nom de la table sous le nom, (data_length + index_length) comme taille, table_comment comme commentaire, engine comme moteur, table_collation comme collation à partir de tables_information_schema où tab_le_schema = 'laravel' et table_type dans ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)1SQLSTATE[HY000] [1045] Accès refusé pour l'utilisateur 'root'@'172.18.0.1' (mot de passe non spécifié) (Connexion : mysql, SQL : sélectionnez le nom de la table sous le nom, (data_length + index_length) comme taille, table_comment comme commentaire, engine comme moteur, table_collation comme collation à partir de tables_information_schema où tab_le_schema = 'laravel' et table_type dans ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)
Je serais reconnaissant si vous pouviez m'aider à résoudre ce problème. Voici mon fichier YAML :
1name: Test23on: [push, pull_request]45jobs:6 run-tests:7 runs-on: ubuntu-latest89 services:10 mysql:11 image: mysql:8.012 ports:13 - 3306:330614 env:15 MYSQL_ROOT_PASSWORD: root16 MYSQL_DATABASE: test_database17 options: >-18 --health-cmd="mysqladmin ping"19 --health-interval=10s20 --health-timeout=5s21 --health-retries=32223 steps:24 - uses: actions/checkout@v42526 - name: Set up PHP27 uses: shivammathur/setup-php@v228 with:29 php-version: '8.2'30 extensions: mbstring, intl, pdo_mysql31 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M32 coverage: xdebug3334 - name: Install Composer dependencies35 run: composer install --prefer-dist --no-progress --no-suggest --ansi3637 - name: Copy .env.example to .env38 run: cp .env.example .env3940 - name: Update .env for MySQL41 run: |42 sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env43 sed -i 's/DB_HOST=.*/DB_HOST=127.0.0.1/' .env44 sed -i 's/DB_PORT=.*/DB_PORT=3306/' .env45 sed -i 's/DB_DATABASE=.*/DB_DATABASE=test_database/' .env46 sed -i 's/DB_USERNAME=.*/DB_USERNAME=root/' .env47 sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=root/' .env4849 - name: Wait for MySQL to be ready50 run: |51 sudo apt-get install -y mysql-client52 until mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SHOW DATABASES"; do sleep 1; done5354 - name: Generate application key55 run: php artisan key:generate5657 - name: Run database migrations58 run: php artisan migrate --env=testing1name: Test23on: [push, pull_request]45jobs:6 run-tests:7 runs-on: ubuntu-latest89 services:10 mysql:11 image: mysql:8.012 ports:13 - 3306:330614 env:15 MYSQL_ROOT_PASSWORD: root16 MYSQL_DATABASE: test_database17 options: >-18 --health-cmd="mysqladmin ping"19 --health-interval=10s20 --health-timeout=5s21 --health-retries=32223 steps:24 - uses: actions/checkout@v42526 - name: Set up PHP27 uses: shivammathur/setup-php@v228 with:29 php-version: '8.2'30 extensions: mbstring, intl, pdo_mysql31 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M32 coverage: xdebug3334 - name: Install Composer dependencies35 run: composer install --prefer-dist --no-progress --no-suggest --ansi3637 - name: Copy .env.example to .env38 run: cp .env.example .env3940 - name: Update .env for MySQL41 run: |42 sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env43 sed -i 's/DB_HOST=.*/DB_HOST=127.0.0.1/' .env44 sed -i 's/DB_PORT=.*/DB_PORT=3306/' .env45 sed -i 's/DB_DATABASE=.*/DB_DATABASE=test_database/' .env46 sed -i 's/DB_USERNAME=.*/DB_USERNAME=root/' .env47 sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=root/' .env4849 - name: Wait for MySQL to be ready50 run: |51 sudo apt-get install -y mysql-client52 until mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SHOW DATABASES"; do sleep 1; done5354 - name: Generate application key55 run: php artisan key:generate5657 - name: Run database migrations58 run: php artisan migrate --env=testing
Bonsoir @xdcondor, dans un premier temps as tu lancé l''exécution de ton gitHub action en local avant ? ensuite personnellement en lieu et place de crée un service mysql tu pourrais passer par sqlite cela te retirerai une autre couche pour tes tests.
1name: Test23on: [push, pull_request]45jobs:6 run-tests:7 runs-on: ubuntu-latest8 steps:9 - uses: shivammathur/setup-php@v210 with:11 php-version: '8.2'12 extensions: mbstring, intl, pdo_mysql13 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M14 coverage: xdebug15 - uses: actions/checkout@v416 - name: Install Composer dependencies17 run: composer install --prefer-dist --no-progress --no-suggest --ansi1819 - name: Copy .env.example to .env20 run: php -r "file_exists('.env') || copy('.env.example', '.env');"212223 - name: Generate application key24 run: php artisan key:generate2526 - name: Run database migrations27 run: php artisan migrate --env=testing1name: Test23on: [push, pull_request]45jobs:6 run-tests:7 runs-on: ubuntu-latest8 steps:9 - uses: shivammathur/setup-php@v210 with:11 php-version: '8.2'12 extensions: mbstring, intl, pdo_mysql13 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M14 coverage: xdebug15 - uses: actions/checkout@v416 - name: Install Composer dependencies17 run: composer install --prefer-dist --no-progress --no-suggest --ansi1819 - name: Copy .env.example to .env20 run: php -r "file_exists('.env') || copy('.env.example', '.env');"212223 - name: Generate application key24 run: php artisan key:generate2526 - name: Run database migrations27 run: php artisan migrate --env=testing
Il faut Se connecter ou Créer un compte pour participer à cette conversation.