Docker swarm共享卷Mysql:不允许Host连接到这个MySQL服务器

时间:2017-12-08 14:35:25

标签: mysql docker docker-swarm glusterfs

我有一个由3个docker swarm节点组成的集群 对于每个节点,我创建了目录 / opt / dockershared / ,并且我已配置glusterfs以在3个节点之间共享此目录。

我试图提供一堆4个服务:NGINX代理,GUI,API,MYSQL

如果我使用以下yml部署堆栈,则没有问题:

version: '3.3'
services:
  proxy:
    image: my-nginx-proxy
    ports:
      - "34200:34200"
    networks:
      - mynet

  db:
    image: mysql/mysql-server:5.6
    volumes:
      - MYDB:/var/lib/mysql
    networks:
      - mynet
    ports:
      - "3306"
    deploy:
      restart_policy: 
        condition: any
      mode: replicated
      replicas: 1
      update_config:
        parallelism: 1
        delay: 10s
     environment:
        - MYSQL_ROOT_PASSWORD=XXX
        - MYSQL_USER=user
        - MYSQL_PASSWORD=xxxxx
        - MYSQL_DATABASE=db

  api:
    image: myapi:latest
    depends_on:
      - db
    volumes:
      - /opt/dockershared/myapi:/data/tmp
    ports:
      - "3000"
    networks:
      - mynet
    deploy:
      restart_policy: 
        condition: any
      mode: replicated
      replicas: 2
      update_config:
        parallelism: 1
        delay: 10s

  gui:
    image: my-gui:latest
    ports:
      - "4200"
    networks:
      - mynet
    deploy:
      restart_policy: 
        condition: any
      mode: replicated
      replicas: 2
      update_config:
        parallelism: 1
        delay: 10s

networks:
  mynet:

volumes:
  MYDB:

我将 db service 中的 MYDB 卷替换为与glusterfs共享的文件夹(例如 / opt / dockershared / mydb:/ var / lib / mysql )我无法再通过api服务连接到mysql:

  

主机'XXX.XXX.XXX.XX'不允许连接到此MySQL服务器

我没有更改mysql的配置,我只更改了卷数据目录。 如果我检查目录 / opt / dockershared / mydb ,我可以在3个节点上看到MYSQL创建的默认数据库(test /,performance_schema /,mysql /,ib_logfile1)

可能是什么问题?

谢谢

0 个答案:

没有答案