【質問】php artisan migrateしたらエラーが起きた
解決したいこと
久しぶりに成果物をいじって改善しようと思い、 php artisan migrate
を実行したところ、以下のエラーが発生しました。
Illuminate\Database\QueryException
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: nodename nor servname provided, or not known (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:712
708▕ // If an exception occurs when attempting to run a query, we'll format the error
709▕ // message to include the bindings with SQL, which will make this exception a
710▕ // lot more helpful to the developer instead of just the database's errors.
711▕ catch (Exception $e) {
➜ 712▕ throw new QueryException(
713▕ $query, $this->prepareBindings($bindings), $e
714▕ );
715▕ }
716▕ }
+33 vendor frames
34 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
エラー分をGoogle先生に投げて調べてみてもうまくいきませんでした。
どなたか解決法を教えていただけないでしょうか。
開発環境
・PHP(laravel) Framework 8.82.0
・Docker version 20.10.12
該当するソースコード
以下.envファイルのデータベース部分
とdocker-compose.yml
になります。
terminal
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
docker-compose.yml
mysql:
image: 'mysql/mysql-server:8.0'
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 1
volumes:
- 'sail-mysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
自分で試したこと
.envファイルのDB_HOSTをlocalhostや127.0.0.1にしたりする→変わらずエラー
・dockerのvolumesの中で使っていないものを削除する→変わらずエラー
初歩的な内容で大変申し訳ないのですが、解決法をご教示お願いいたします🙇♂️
1