データベースに接続できない。SQLSTATE[HY000] [2002] No such file or directory

docker-composeで以下のように環境を構築してアプリ開発を進めていました。

version: "3" services: web: build: ./docker/web container_name: web environment: TZ: "Asia/Tokyo" ports: - 80:80 volumes: - ./app:/php-voting-app/app depends_on: - db db: build: ./docker/db platform: linux/x86_64 container_name: db environment: MYSQL_ROOT_PASSWORD: ******** MYSQL_DATABASE: votingapp TZ: "Asia/Tokyo" ports: - 3307:3306 volumes: - app_data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf restart: always volumes: app_data: driver: local

前提

以下のコードの部分でDBに接続してindex.phpでDBから取得したデータを出力しようとしたところエラーが発生しました
datasource.php

public function __construct($host = 'localhost', $port = '3307', $dbName = 'votingapp', $username = 'voting_user', $password = ********) { $dsn = "mysql:host={$host};port={$port};dbname={$dbName};"; $this->conn = new PDO($dsn, $username, $password);

index.php

use DB\UserQuery; $result = UserQuery::fetchById('test'); var_dump($result);
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in /php-voting-app/app/htdocs/php/db/datasource.php:14 Stack trace: #0 /php-voting-app/app/htdocs/php/db/datasource.php(14): PDO->__construct('mysql:host=loca...', 'voting_user', '*********') #1 /php-voting-app/app/htdocs/php/db/user.query.php(10): db\DataSource->__construct() #2 /php-voting-app/app/htdocs/index.php(14): db\UserQuery::fetchById('test') #3 {main} thrown in /php-voting-app/app/htdocs/php/db/datasource.php on line 14

ご教授の程よろしくお願いします

コメントを投稿

0 コメント