首页 > 解决方案 > Docker MYSQL '[2006] MySQL 服务器已经消失'

问题描述

我对mysql服务器有一点问题。我创建了我的 docker-compose.yml,但是当我想访问 phpMyAdmin (localhost:8080) 时,出现了一条错误消息:“phpMyAdmin 试图连接到 MySQL 服务器,并且服务器拒绝了连接。请检查配置中的主机、用户名和密码的值,并确保它们与 MySQL 服务器管理员提供的信息相匹配”。

这是我的 docker-compose 文件,感谢您帮助我

version: '2'
services:
  apache:
    image: rafaelcgstz/magento2
    # build: .
    ports:
      - 80:80
      - 9001:9000
      # - "35729:35729" # live reload
    volumes:
      - ./src:/var/www/html
      - ~/.composer:/var/www/.composer
      - ~/.npm:/var/www/.npm
      # - ~/.nvm:/var/www/.nvm
    environment:
      XDEBUG_CONFIG: "remote_host=localhost"
      PHP_IDE_CONFIG: "serverName=Docker"
    depends_on:
      - db
    links:
      - db
    networks:
      - magento-network

  db:
    image: mariadb
    ports:
     - 3300:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=magento
      - MYSQL_USER=magento
      - MYSQL_PASSWORD=magento
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - magento-network

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    environment:
     - PMA_HOST=db
     - PMA_USER=root
     - PMA_PASSWORD=root
     - MYSQL_ROOT_PASSWORD=root
    ports:
     - 8080:80
    networks:
      - magento-network

  redis:
    image: redis
    ports:
     - 6379
    networks:
      - magento-network

  redis-session:
    image: redis
    ports:
     - 6379
    networks:
      - magento-network

  mailhog:
    image: mailhog/mailhog
    ports:
      - 1025:1025
      - 8025:8025
    networks:
      - magento-network

networks:
  magento-network:
    driver: bridge

volumes:
  dbdata:
    driver: local

标签: mysqldockerphpmyadmindocker-compose

解决方案


似乎您在mariadb服务定义中有错字:

ports:
     - 3300:3306

您配置了端口映射,以便可以访问容器,3300但您没有将此信息传递给 PHPMyadmin。结果,连接尝试超时。

旁注:您根本不需要为数据库公开端口 - 其他容器将使用 Docker 的虚拟网络与它进行通信,并且您可以使用本地访问docker container -it exec <container-id> mysql...docker-compose exec db mysql...


推荐阅读