簡體   English   中英

Docker Compose與PHP,MySQL,nginx連接問題

[英]Docker Compose with PHP, MySQL, nginx connection issue

我無法連接到MySQL容器。

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測試腳本:

<?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();
    }
?>

這個腳本回復了我:

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

我的代碼有什么問題? 因為我認為應該沒問題

如果有人有更好的解決方案,謝謝您的幫助。

更改$servername = "localhost"; $servername = "mysql"; 您的mysql服務不在Web服務器容器的本地主機上。 您應該改用服務名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM