xdcondor
xdcondor 265 XP
a posé

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: Test
2 
3on: [push, pull_request]
4 
5jobs:
6 run-tests:
7 runs-on: ubuntu-latest
8 
9 services:
10 mysql:
11 image: mysql:8.0
12 ports:
13 - 3306:3306
14 env:
15 MYSQL_ROOT_PASSWORD: root
16 MYSQL_DATABASE: test_database
17 options: >-
18 --health-cmd="mysqladmin ping"
19 --health-interval=10s
20 --health-timeout=5s
21 --health-retries=3
22 
23 steps:
24 - uses: actions/checkout@v4
25 
26 - name: Set up PHP
27 uses: shivammathur/setup-php@v2
28 with:
29 php-version: '8.2'
30 extensions: mbstring, intl, pdo_mysql
31 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
32 coverage: xdebug
33 
34 - name: Install Composer dependencies
35 run: composer install --prefer-dist --no-progress --no-suggest --ansi
36 
37 - name: Copy .env.example to .env
38 run: cp .env.example .env
39 
40 - name: Update .env for MySQL
41 run: |
42 sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env
43 sed -i 's/DB_HOST=.*/DB_HOST=127.0.0.1/' .env
44 sed -i 's/DB_PORT=.*/DB_PORT=3306/' .env
45 sed -i 's/DB_DATABASE=.*/DB_DATABASE=test_database/' .env
46 sed -i 's/DB_USERNAME=.*/DB_USERNAME=root/' .env
47 sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=root/' .env
48 
49 - name: Wait for MySQL to be ready
50 run: |
51 sudo apt-get install -y mysql-client
52 until mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SHOW DATABASES"; do sleep 1; done
53 
54 - name: Generate application key
55 run: php artisan key:generate
56 
57 - name: Run database migrations
58 run: php artisan migrate --env=testing
1name: Test
2 
3on: [push, pull_request]
4 
5jobs:
6 run-tests:
7 runs-on: ubuntu-latest
8 
9 services:
10 mysql:
11 image: mysql:8.0
12 ports:
13 - 3306:3306
14 env:
15 MYSQL_ROOT_PASSWORD: root
16 MYSQL_DATABASE: test_database
17 options: >-
18 --health-cmd="mysqladmin ping"
19 --health-interval=10s
20 --health-timeout=5s
21 --health-retries=3
22 
23 steps:
24 - uses: actions/checkout@v4
25 
26 - name: Set up PHP
27 uses: shivammathur/setup-php@v2
28 with:
29 php-version: '8.2'
30 extensions: mbstring, intl, pdo_mysql
31 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
32 coverage: xdebug
33 
34 - name: Install Composer dependencies
35 run: composer install --prefer-dist --no-progress --no-suggest --ansi
36 
37 - name: Copy .env.example to .env
38 run: cp .env.example .env
39 
40 - name: Update .env for MySQL
41 run: |
42 sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=mysql/' .env
43 sed -i 's/DB_HOST=.*/DB_HOST=127.0.0.1/' .env
44 sed -i 's/DB_PORT=.*/DB_PORT=3306/' .env
45 sed -i 's/DB_DATABASE=.*/DB_DATABASE=test_database/' .env
46 sed -i 's/DB_USERNAME=.*/DB_USERNAME=root/' .env
47 sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=root/' .env
48 
49 - name: Wait for MySQL to be ready
50 run: |
51 sudo apt-get install -y mysql-client
52 until mysql -h 127.0.0.1 -P 3306 -u root -proot -e "SHOW DATABASES"; do sleep 1; done
53 
54 - name: Generate application key
55 run: php artisan key:generate
56 
57 - name: Run database migrations
58 run: php artisan migrate --env=testing
stevymarlino
a répondu
Meilleure réponse

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: Test
2
3on: [push, pull_request]
4
5jobs:
6 run-tests:
7 runs-on: ubuntu-latest
8 steps:
9 - uses: shivammathur/setup-php@v2
10 with:
11 php-version: '8.2'
12 extensions: mbstring, intl, pdo_mysql
13 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
14 coverage: xdebug
15 - uses: actions/checkout@v4
16 - name: Install Composer dependencies
17 run: composer install --prefer-dist --no-progress --no-suggest --ansi
18
19 - name: Copy .env.example to .env
20 run: php -r "file_exists('.env') || copy('.env.example', '.env');"
21
22
23 - name: Generate application key
24 run: php artisan key:generate
25
26 - name: Run database migrations
27 run: php artisan migrate --env=testing
1name: Test
2
3on: [push, pull_request]
4
5jobs:
6 run-tests:
7 runs-on: ubuntu-latest
8 steps:
9 - uses: shivammathur/setup-php@v2
10 with:
11 php-version: '8.2'
12 extensions: mbstring, intl, pdo_mysql
13 ini-values: post_max_size=256M, upload_max_filesize=256M, memory_limit=512M
14 coverage: xdebug
15 - uses: actions/checkout@v4
16 - name: Install Composer dependencies
17 run: composer install --prefer-dist --no-progress --no-suggest --ansi
18
19 - name: Copy .env.example to .env
20 run: php -r "file_exists('.env') || copy('.env.example', '.env');"
21
22
23 - name: Generate application key
24 run: php artisan key:generate
25
26 - name: Run database migrations
27 run: php artisan migrate --env=testing
Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

xdcondor
xdcondor 265 XP
a répondu
Confirmer la suppression

Êtes-vous sûr de vouloir supprimer cette réponse ? Cette action est irréversible.

Il faut Se connecter ou Créer un compte pour participer à cette conversation.

Confirmer la suppression

Êtes-vous sûr de vouloir supprimer ce sujet ? Cette action est irréversible.