2016-12-22 8 views
5

के साथ लिखें मुझे MySQL कंटेनर से कनेक्ट करने में समस्या है।डॉकर PHP, MySQL, nginx कनेक्शन समस्या

डोकर-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 
$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 

क्या मेरी कोड के साथ गलत क्या है? क्योंकि मुझे लगता है कि यह ठीक होना चाहिए

यदि किसी के पास कोई बेहतर समाधान है तो आपकी मदद के लिए धन्यवाद।

उत्तर

5

$servername = "localhost";$servername = "mysql"; बदलें। आपकी mysql सेवा आपके वेबसर्वर कंटेनर के लोकहोस्ट पर नहीं है। आपको सेवा के नाम का उपयोग

+0

अभी भी वही प्रतिक्रिया है – wiput1999

+0

अब यह काम है धन्यवाद: डी – wiput1999

संबंधित मुद्दे