簡體   English   中英

Docker用PHP連接MySQL的問題

[英]Docker problem connection to MySQL with PHP

我從docker開始,我想使用PDO驅動程序連接到我的數據庫。 但是很不幸,我的頁面上出現了一個錯誤,我不知道如何解決。 你能幫我嗎 ?

這是我的錯誤:

致命錯誤:未被捕獲的PDOException:PDO :: __結構():php_network_getaddresses:getaddrinfo失敗:沒有與主機名關聯的地址

這是我的index.php:

<?php
    $db = new PDO('mysql:host=db:3306;dbname:DockerProject', "root", "root");
?>

這是我的dockerfile:

FROM php:7.2-apache
RUN apt-get update && apt-get install -y libpng-dev libjpeg-dev libpq-dev \
&& rm -rf /var/lib/apt/lists/* \
&& docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \
&& docker-php-ext-install gd mbstring pdo pdo_mysql pdo_pgsql

這是我的docker-compose.yaml:

version: '3'

services:
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: DockerProject
      MYSQL_USER: devuser
      MYSQL_PASSWORD: devpass
    ports:
      - "3306:3306"
  web:
    image: php_pdo:latest
    container_name: php_web
    depends_on:
      - db
    volumes:
      - ./php/:/var/www/html/
    ports:
      - "8100:80"
    stdin_open: true
    tty: true
  myadmin:
    image: phpmyadmin/phpmyadmin
    ports:
        - "8080:80"
    links:
        - db:db

dsn定義為

$db = new PDO('mysql:host=db;dbname=DockerProject', "root", "root");

如果需要顯式定義端口,請使用:

$db = new PDO('mysql:host=db;port=3306;dbname=DockerProject', "root", "root");

另外,不確定dbname:DockerProject為什么以正確的語法工作是dbname=DockerProject

暫無
暫無

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

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