簡體   English   中英

無法使用 docker compose 將 phpmyadmin 連接到數據庫

[英]Unable to connect phpmyadmin to database using docker compose

可能是這個問題之前被問過幾次,但我沒有得到可以解決我的問題的有效答案。

我正在嘗試使用docker-compose在不同容器上的 docker 中運行 phpmyadmin,但它總是通過以下錯誤:

#2002 - 連接被拒絕 - 服務器沒有響應(或者本地服務器的套接字沒有正確配置)。

我的 docker compose 文件包含以下代碼:

version: "2"

services:
  web:
    build: .
    ports:
      - "80:80"
    networks: 
      - web
    volumes:
      - .:/code
    restart: always
  db:
    image: "mysql:5"
    volumes:
      - ./mysql:/etc/mysql/conf.d
    environment:
      MYSQL_ROOT_PASSWORD: toor
      MYSQL_DATABASE: phpapp
    networks: 
      - web
    restart: always
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_PORT: 3306
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: toor
    ports:
      - "8000:80"
    restart: always
    networks: 
      - web

networks: 
  web:
    driver: bridge

web容器中,我試圖連接數據庫並且它工作正常,但是phpmyadmin連接出現問題

任何幫助,將不勝感激。 :)

現在您需要向 mysql 服務添加命令以連接到 phpmyadmin。

命令:--default-authentication-plugin=mysql_native_password

version: "2"
services:
db:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    ports: 
        - "3306:3306"
    environment:
        MYSQL_DATABASE: drupal
        MYSQL_USER: user
        MYSQL_PASSWORD: test
        MYSQL_ROOT_PASSWORD: test
    volumes:
        - ./dump:/docker-entrypoint-initdb.d
        - /var/lib/mysql
    networks:
        - default
phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links: 
        - db:db
    ports:
        - 8000:80
    environment:
        PMA_HOST: db
        MYSQL_USER: user
        MYSQL_PASSWORD: test
        MYSQL_ROOT_PASSWORD: test

有趣的是,我已經運行了您的撰寫文件,並且可以從主機訪問 phpmyadmin。

不過不得不將端口 8000 更改為 8004(端口 8000 在我的主機上被占用)。

如果您的 db-container 啟動速度不足以讓 phpmyadmin 連接,我建議將depends_on添加到 phpmyadmin 服務中。 確保 db 在 phpmyadmin 之前啟動。

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_PORT: 3306
      PMA_HOST: db
      PMA_USER: root
      PMA_PASSWORD: toor
    ports:
    - "8004:80"
    restart: always
    depends_on: 
    - db
    networks: 
    - web

如果問題仍然存在,請顯示來自docker-compose up日志。

暫無
暫無

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

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