在具有连接问题的docker-compose中在root旁边创建新用户

时间:2018-02-22 04:24:55

标签: docker docker-compose docker-swarm docker-swarm-mode docker-stack

我使用docker-compose运行一个docker堆栈。 docker-compose.yml看起来如下所示。问题是如果我添加默认用户root然后它工作正常但将用户更改为另一个用户说 tara 会引发错误。

我再说一遍: 适用于用户:root

注意我在3个节点上使用单个副本运行它。因此,该服务可能正在任何节点中运行。

"SQLSTATE[HY000] [1130] Host '10.0.10.6' is not allowed to connect to this MySQL server (SQL: select count(*) as aggregate from `users` where `email` = ramesh@gm ▶"

这是docker-compose.yml

版本:' 3.3'

网络:   smstake:     IPAM:       配置:          - 子网:10.0.10.0/24

服务:

db:
    image: mysql:5.7
    networks:
      - smstake
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: smstake
      MYSQL_USER: tara
      MYSQL_PASSWORD: password
    deploy:
      mode: replicated
      replicas: 1

app:

    image: smstake:latest
    ports:
      - 8000:80
    networks:
      - smstake
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager

phpmyadmin:
    image: phpmyadmin/phpmyadmin
    networks:
      - smstake
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
      MYSQL_USER: tara
      MYSQL_PASSWORD: password
    ports:
      - '8082:80'
    deploy:
      mode: replicated
      replicas: 1

卷:     DB_DATA:

所有3项服务仅运行连接问题。

  

人们建议运行grant命令,但我可以在哪里以及如何运行   让那些命令运行?

1 个答案:

答案 0 :(得分:0)

显示正在运行的进程

docker ps

连接到mysql运行容器

docker exec -it MYSQL-CONTAINER-NAME /bin/bash

进入容器后,连接到数据库并创建用户等等。