Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

PHP कुछ परिस्थितियों में mysql कंटेनर नाम को हल नहीं कर सकता

चूंकि आप लिंकिंग missing खो रहे हैं आप PHP के साथ डीबी कंटेनर। जब आप db को PHP से लिंक करते हैं तो यह PHP के लोकलहोस्ट से एक्सेस किया जा सकता है।

यहां मैंने आपकी डॉकर-कंपोज़ फ़ाइल को संशोधित किया है क्योंकि मुझे हर जगह अल्पाइन पसंद है;)। और मैं कोड स्तर की जाँच के बजाय adminer और db से verfiy कनेक्शन के लिंक का उपयोग करता हूं। जैसा कि मेरे पास आपके पास php docker फ़ाइल नहीं है, इसलिए मैं php:alpine बना रहा हूँ जिसमें php7 है।

version: "3"
services:
  nginx:
    image: nginx:1.13-alpine
    container_name: nginx
    ports:
      - "8081:80"
    command: nginx -g "daemon off;"
  db:
    image: mysql:5.5
    environment:
      MYSQL_ROOT_PASSWORD: example

  php:
    image: php:alpine
    container_name: php
    tty: true
    links:
     - db 
  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080
    links:
     - db 

फिर मैंने php कंटेनर में mysqli स्थापित किया

docker exec -it php ash

और कमांड के नीचे चलाएँ

docker-php-ext-install mysqli;

फिर test.php बनाएं

यहाँ सर्वर का नाम db है . ध्यान दें कि आपका सर्वर नाम वही होगा जो डीबी कंटेनर नाम है जो php.if से लिंक है। यदि आप ping db php कंटेनर में यह db कंटेनर को पिंग करेगा।

    <?php
$servername = "db";
$username = "root";
$password = "example";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "Connected successfully";
?>

अब इस फाइल को php कंटेनर में रन करें। आप अपना PHP कोड माउंट और चला सकते हैं लेकिन मैंने परीक्षण के लिए यही किया है। और मैंने रूट उपयोगकर्ता के रूप में कोशिश की।

php -f test.php

और यहाँ है adminer जो db से भी लिंक करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हाइबरनेट नामांकित क्वेरी - 3 टेबल में शामिल हों

  2. mysql-अजगर स्थापना समस्याएं (मैक ओएस एक्स शेर पर)

  3. एकाधिक तालिकाओं में MySQL पूर्ण पाठ खोज प्रासंगिकता

  4. विभिन्न प्रकार के कॉलम में शामिल हो रहे हैं?

  5. पूछताछ के बाद क्वेरीसेट को फ़िल्टर करना संभव है? डीजेंगो