2017-05-12 9 views
1

mysql 5.7コンテナに問題があり、wordpressコンテナへのアクセスを拒否しています。私はドッカーの作成を使用しています。私はMac OSX上でドッカーを実行しています。ドッカーは最新のバージョンで利用可能でなければなりません。docker-compose mysqlコンテナがwordpressコンテナへのアクセスを拒否する

ここデシベルコンテナから私のドッキングウィンドウ-compose.yml

version: '2' 

services: 
    wordpress: 
    depends_on: 
     - db 
    image: wordpress:latest 
    container_name: wordpress 
    ports: 
     - "8000:80" 
     - "443:443" 
    restart: always 
    environment: 
     WORDPRESS_DB_HOST: db:3306 
     WORDPRESS_DB_NAME: blog 
     WORDPRESS_DB_USER: blog_admin 
     WORDPRESS_DB_PASSWORD: userpasswd 
    networks: 
     - wordpress_net 
    db: 
    image: mysql:5.7 
    container_name: db 
    ports: 
     - "3306:3306" 
    volumes: 
     - db_data:/var/lib/mysql 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: rootpasswd 
     MYSQL_DATABASE: blog 
     MYSQL_USER: blog_admin 
     MYSQL_PASSWORD: userpasswd 
    networks: 
     - wordpress_net 
networks: 
    wordpress_net: 
volumes: 
    db_data: 

ログのだが、次のとおりです。

2017-05-12T23:28:06.138429Z 321 [Note] Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES) 

ログwordpressのコンテナから、次のとおりです。

MySQL Connection Error: (1045) Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES) 
Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'blog_admin'@'172.19.0.3' (using password: YES) in - on line 22 

ドッキングウィンドウのPS:

CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS          NAMES 
1b02f0146fe7  wordpress:latest "docker-entrypoint..." 25 minutes ago  Up 26 seconds  0.0.0.0:443->443/tcp, 0.0.0.0:8000->80/tcp wordpress 
5d932ed6c269  mysql:5.7   "docker-entrypoint..." 25 minutes ago  Up 25 minutes  0.0.0.0:3306->3306/tcp      db 

は、私が何をしようとしている:

  1. をドッカホストを再起動します。
  2. docker-rm -vを作成し、dock-upをもう一度作成します。
  3. WordPressのコンテナの外部にあるユーザーの資格情報とルート資格情報でログインします。
  4. ドッカー画像を削除して、最初から再び引き出します。ルートの資格情報を使用して
  5. 私はコンテナをDBへ接続するときWORDPRESS_DB_HOST, WORDPRESS_DB_USER

に、私はDBのすべてのenv VARSを見ることができます。 Wordpressのコンテナはそれ自身を再開し続けます。私は、フラッシュオーバーフローで1つの答えを見て特権をフラッシュし、新しいユーザーアカウントを設定することを推奨しましたが、私は別のマシンにこの問題が再び現れる原因となる何か間違ったことをしたいのですか?

+0

phpmyadminを使用して、root_userの「ホスト」が「%」に設定されているかどうかを確認できますか?あなたのドッカーの作文でも、 " - links: - db"をwordpress-serviceで使ってみてください。 –

+0

@ad_on_isこんにちは私の問題は修正されました。うん、私はdocker-compose.ymlにphpmyadminを追加しようとしましたが、rootであってもmysqlに接続できなかったので動作しませんでした。私はrootパスワードを空白にしてもアクセスを拒否していました。 phpmyadminでも接続できませんでした。それにもかかわらず、私は受け入れられた答えに記述されたアプローチで修正しました。 –

答えて

0

私が何をした:私は常にシャットダウンコンテナにdocker-compose downを使用して

docker-compose rm -vは私のために働いていません。そして私はこれが問題の根源だと思う。私は私のdocker-compose.ymlでフォルダを削除し、新しいものを作成しました。それから、mysqlコンテナ用のコンフィグレーションファイルを作成して起動し、rootとしてmysqlサーバに接続しようとしました。それは働いて、私はdocker stop containerIDとその後、私は(何らかの理由でrm -vを実行したコンテナを停止しなければならなかった場合は、コンテナを停止します。あなたがdocker-compose downを使用する場合、これは、私は、DBコンテナのボリュームを使用して、DB状態が持続させ)、私はこのようなものになってしまってきたwordpressのコンテナの設定とYMLファイルを完了していない:

version: '2' 

services: 
    wordpress: 
    image: wordpress:latest 
    container_name: wordpress-blog 
    depends_on: 
     - mysql 
    ports: 
     - "8000:80" 
     - "443:443" 
    restart: always 
    environment: 
     WORDPRESS_DB_HOST: mysql 
     WORDPRESS_DB_USER: admin 
     WORDPRESS_DB_PASSWORD: password 
     WORDPRESS_DB_NAME: wordpress 
    mysql: 
    image: mysql:5.7 
    container_name: mysql-db 
    ports: 
     - "3306:3306" 
    restart: always 
    environment: 
     MYSQL_ROOT_PASSWORD: password 
     MYSQL_DATABASE: wordpress 
     MYSQL_USER: admin 
     MYSQL_PASSWORD: password 

注:私は、以前に問題を抱えていましたwordpressコンテナからデータベースに接続するだけでなく、dbコンテナからもそれを自分自身に接続します。上記の方法でこの問題を解決できました。

1

変更

WORDPRESS_DB_USER: blog_admin WORDPRESS_DB_PASSWORD: userpasswd

WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: rootpasswd

、その後

Blog_adminが

のデータベースを作成するためのアクセス権を持っているdoesntの
docker-compose up -d --build 

ユーザー名

+0

私はそれをしましたが、結果は同じようです。私はrootのために今度は同じエラーログを取得しています –

関連する問題