6

I have problem to connect to MySQL container.

docker-compose.yml

version: '2'

services:
    mysql:
        image: mysql:latest
        environment:
            MYSQL_ROOT_PASSWORD: JoeyW#1999
            MYSQL_DATABASE: wiput
            MYSQL_USER: web
            MYSQL_PASSWORD: Web#1234
        volumes:
            - ./mysql:/var/lib/mysql
        networks:
            - code-network
    php:
        image: wiput1999/php:latest
        volumes:
            - ./code:/code
        networks:
            - code-network
    nginx:
        image: nginx:latest
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - ./code:/code
            - ./site.conf:/etc/nginx/conf.d/default.conf
            - /etc/letsencrypt:/etc/letsencrypt
        networks:
            - code-network
networks:
    code-network:
        driver: bridge

PHP test script:

<?php
$servername = "localhost";
$username = "root";
$password = "JoeyW#1999";

try {
    $conn = new PDO("mysql:host=$servername;dbname=wiput", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
?>

This script reponse me :

Connection failed: SQLSTATE[HY000] [2002] No such file or directory

What's wrong with my code? because I think It's should be fine

If anyone have a better solution Thank you for your help.

1 Answer 1

5

Change $servername = "localhost"; to $servername = "mysql";. Your mysql service isn't on the localhost of your webserver container. You should use the name of the service instead

Sign up to request clarification or add additional context in comments.

1 Comment

Still have the same response

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.