2017-07-13 26 views
3

Pythonを実行する2つのコンテナともう1つのmysqlを設定しようとしています。 これは私のdocker-compose.ymlファイルです。しかしDocker mysql ERROR 1396(HY000): 'root' @ '%'の操作CREATE USERが失敗しました

version: '3' 
services: 
    python: 
     restart: always 
     build: ./budget/dockerfiles/python/ 
     ports: 
      - "5000:5000" 
     links: 
      - db 
     depends_on: 
      - db 
     volumes: 
      - ./budget/:/app:z 
     entrypoint: 
      - python 
      - -u 
      - /app/run.py 

    db: 
     build: ./budget/dockerfiles/mysql/ 
     environment: 
      MYSQL_ROOT_PASSWORD: password 
      MYSQL_DATABASE: database-name 
      MYSQL_USER: root 
      MYSQL_PASSWORD: password 
     volumes: 
      - ./Dump.sql:/db/Dump.sql:z 
      - ./Dump_Test.sql:/db/Dump_Test.sql:z 
      - ./big_fc.sql:/db/big_fc.sql:z 
     ports: 
      - "3306:3306" 

、私はdocker-compose up -d --buildを実行すると、コンテナが構築されていますが、MySQLのコンテナがクラッシュします。ログでは、それは言う:

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%' 

私はthis postを示唆するもの試してみたかったが、それがクラッシュしているので、私もコンテナを入力することはできません。誰かが私にできることを教えてもらえますか?

+1

** just MYSQL_ROOT_PASSWORDとMYSQL_DATABASE – Robert

+0

@Robertを使用してみてください。私はgithubで問題を見つけましたが、問題を解決しました。私はすぐに答えを提供しています。 – lmiguelvargasf

+0

@Robert、もし私が 'MYSQL_PASSWORD'を含んでいないとすれば? – lmiguelvargasf

答えて

4

このgithub issueによれば、問題はMYSQL_USERからrootに設定されています。 2番目のユーザ'root'@'%'は、すでにusersテーブルに存在するため作成できません。

したがって、これはdocker-compose.ymlファイルにMYSQL_ROOT_PASSWORD,MYSQL_DATABASE、およびMYSQL_PASSWORDと設定するだけで解決できます。

関連する問題