前提・実現したいこと
下記サイトを参考に環境構築の勉強をしています。
さらっとDocker入門(PHP開発環境構築編)
PDOでMySQLに接続した際のエラーを解消したい。
発生している問題・エラーメッセージ
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
該当のソースコード
docker-compose.yml
version: "3" services: php: container_name: php_test1 build: context: ./php ports: - 8080:80 volumes: - ./htdocs:/var/www/html restart: always db: container_name: mysql_test1 image: mysql:8.0.23 volumes: - ./mysqlvol:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test_db command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - 3306:3306
PHP
1<?php 2$dsn = 'mysql:dbname=test_db;host=mysql_test1;port=3306;'; 3$user = 'root'; 4$password = 'password'; 5 6try { 7 $db = new PDO($dsn, $user, $password); 8 echo '接続成功'; 9} catch(PDOException $e) { 10 echo '接続失敗' . $e->getMessage(); 11} 12 13phpinfo();
Dockerfile
1FROM php:8.0.3-apache 2COPY php.ini /usr/local/etc/php/ 3RUN docker-php-ext-install pdo_mysql
試したこと・質問
調べたところホスト名に問題がある場合にこのエラーが表示されるようなのですが、
PHPではhost=mysql_test1
、docker-compose.ymlではcontainer_name: mysql_test1
と書いているので問題ないかと思ったのですが他に何を確認すればよいでしょうか。
補足情報(FW/ツールのバージョンなど)
System
Linux 77417dd62ead 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64
Apache Version
Apache/2.4.38 (Debian)
PHP Version
8.0.3
OS
Macintosh; Intel Mac OS X 10_13_6)
docker Version
20.10.7
Client API version
mysqlnd 8.0.3
回答1件
あなたの回答
tips
プレビュー