Q&A
前提
Laravel sailを使って環境構築をしています。
https://laravel.com/docs/9.x/installation#laravel-and-docker
ドキュメント通りに環境を作り、migrateの実行に成功しました。
migrateはできたのですがDBのアクセスに失敗しており、その原因を教えていただきたいです。
発生している問題・エラーメッセージ
migrate後にDBにアクセスできません。アクセスしようとすると下記のエラーが発生します。
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo for mysql failed: nodename nor servname provided, or not known
Sequel
1Access denied for user 'sail'@'localhost' (using password: YES)
該当のソースコード
Laravel sailで自動生成されたコードから一切変更していません。
docker
1mysql: 2 image: 'mysql/mysql-server:8.0' 3 ports: 4 - '${FORWARD_DB_PORT:-3306}:3306' 5 environment: 6 MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}' 7 MYSQL_ROOT_HOST: "%" 8 MYSQL_DATABASE: '${DB_DATABASE}' 9 MYSQL_USER: '${DB_USERNAME}' 10 MYSQL_PASSWORD: '${DB_PASSWORD}' 11 MYSQL_ALLOW_EMPTY_PASSWORD: 1 12 volumes: 13 - 'sail-mysql:/var/lib/mysql' 14 - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh' 15 networks: 16 - sail 17 healthcheck: 18 test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"] 19 retries: 3 20 timeout: 5s
DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=src DB_USERNAME=sail DB_PASSWORD=password
現状と試したこと
- .envとyaml内の値は自動生成されました。変更していません。
- migrateは実行できています。
- tablePlusとSequel Aceでアクセスできるか確認→どちらもアクセス失敗
エラーメッセージの検索結果を一通り見たのですが、migrate実行時に失敗している内容しか見当たらず、原因がわかりませんでした。
yamlや.envの内容に問題があるのかと考えたのですが問題は見つかりませんでした。
※ページ表示は問題なくできています。
バージョンなど
- PC: Mac M1
- docker-compose.yaml: "3"
- composer: 2.2.1
- php: 8.2.1
- laravel/framework: 9.47.0
- mysql 8.0
- laravel/sail: ^1.18
回答1件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/01/15 08:58
2023/01/15 10:10