質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

8601閲覧

docker phpMyAdminのアクセスが拒否されてしまう

t_shirakihara

総合スコア4

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2021/06/27 04:09

前提・実現したいこと

docker初心者です。
docker-composeにてphpの開発環境を構築したいと思ったため、環境の構築を行なっていたのですがphpmyadminに接続ができません。
もともとMAMPにてphpやmysqlなどの学習を行なっていましたが、今回dockerにて再度開発環境を整えてみたいと思い、リンク内容←こちらのサイトを参考に各ファイルを作成しました。ファイル内容は該当フォルダに記載させていただきます。
参考サイトをもとに、ディレクトリ・ファイルとその中身をコーディングしていきました。ファイルの準備が終わった段階で、[docker-compose up -d]をターミナルに入力し、コンテナの起動には成功したのですが、phpmyadminにのみアクスができない状況です。

http://localhost:8080/
イメージ説明

http://localhost:8888/
イメージ説明

localhost:8080は接続ができたのですが、localhost:8888に接続すると、アクセス拒否されてしまいます。
以前使用していたmampが影響しているのではないかと考えたため、[AppCleaner]をインストールし、MAMPや関連ファイルを削除しましたが、結果は変わりませんでした。

どうすればいいでしょうか?

私自身が学習してまだ経験が浅いため、質問の仕方も下手くそかと思います。必要な情報も載せきれていないと思うので、ご指摘いただけると幸いです。
###コンテナの起動時のターミナル画面

Starting mysql_host ... done Starting php-test_php_1 ... done Starting test_phpmyadmin ... done Starting php-test_nginx_1 ... done

###ディレクトリ・フォルダ

php-test ├── docker-compose.yml ├── mysql │   └── data ├── nginx │   └── nginx.conf ├── php │   ├── Dockerfile │   └── php.ini └── www └── html └── index.php

発生している問題・エラーメッセージ①

MySQL のメッセージ 接続できません。設定が無効です

発生している問題・エラーメッセージ②

mysqli::real_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known

発生している問題・エラーメッセージ③

mysqli::real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known

発生している問題・エラーメッセージ④

MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください。

###docker-compose.yml

version: '3' services: nginx: image: nginx:latest ports: - 8080:80 volumes: - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf - ./www/html:/var/www/html depends_on: - php php: build: ./php volumes: - ./www/html:/var/www/html depends_on: - db db: image: mysql:5.7 ports: - 13306:3306 volumes: - ./mysql:/var/lib/mysql container_name: mysql_host environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_database MYSQL_USER: docker MYSQL_PASSWORD: docker TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci ports: - 3306:3306 phpmyadmin: image: phpmyadmin/phpmyadmin:latest ports: - 8888:80 depends_on: - db container_name: test_phpmyadmin environment: - PMA_ARBITRARY=1 - PMA_HOSTS=mysql_host - PMA_USER=root - PMA_PASSWORD=root

###nginx.conf

server { listen 80; server_name _; root /var/www/html; index index.php index.html; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

###Dockerfile

FROM php:7.2-fpm COPY php.ini /usr/local/etc/php/ RUN docker-php-ext-install pdo_mysql

###php.ini

date.timezone = "Asia/Tokyo"

試したこと

以前使用していたmampが関係しているのではないかと考えたため、「AppCleaner」を使用して、MAMPと関連ファイルの削除を行いました。しかし結果は何も変わりませんでした。
また、「config.inc.php」を確認しろのようなエラーが出ているため、config.inc.phpをターミナルの「find」を使って探したのですが、見つかりませんでした。
プログラムの誤字、脱字がないかを比較ツールを使って調べましたが、こちらもありませんでした。
MAMPが関連しているのではないかと推測したため、自分なりに検索をしてみたのですが、こちらもヒットせず...

補足情報(FW/ツールのバージョンなど)

macOS BigSur バージョン11.4
MacBook Pro (13-inch, 2016, Four Thunderbolt 3 Ports)
Docker version 20.10.7, build f0df350
docker-compose version 1.29.2, build 5becea4c

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーは画面に表示されている通り権限がないエラーです
rootでログインしたいならmysqlのコンテナ側mysqladminコンテナからmysqlコンテナへrootアクセスできるようにで設定が必要です

だけどdockerで用意する環境でrootが必要になる事はないと思うので、mysqladminのコンテナの設定を下記の部分を

PMA_USER=root

PMA_PASSWORD=root

mysqlのコンテナに設定したもの(下記)と同じものにすれば良いだけかと

MYSQL_USER: docker

MYSQL_PASSWORD: docker

phpmyadminもphpmyadminイメージも使った事ないので、予想です

投稿2021/06/27 04:31

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_shirakihara

2021/06/27 12:42 編集

毎回ご指摘や助言をありがとうございます。 色々と確認してみたところ、「docker-compose.yml」のphpbyadminのenvironmentを削除した結果、phpmyadmin自体には接続することができました。現在、ログインできない状況が続いているので、そちらを取り組んでみて、またご質問させていただくかもしれませんが、もしもお時間ありましたら、また何かご指摘をいただけるとありがたいです。 毎回本当にありがとうございます。
hentaiman

2021/06/27 12:47

environmentを消すんじゃなくて PMA_USER=docker PMA_PASSWORD=docker に書き換えるようにっていう意味の回答ですが、試しましたか?それも試していてダメだったから消したという事ですか? ダメだったとしても自分はそれらを使った事無いのでこれ以上のアドバイスは出来ませんけど
t_shirakihara

2021/06/27 12:55

ありがとうございます。 説明不足でしたね、申し訳ないです。 PMA_USER,PMA_PASSWORDは共にdockerと設定はしていましたが、出てくるエラーは変わらずでした。
hentaiman

2021/06/27 14:25

試しに記載のymlでdbとphpmyadminのイメージだけで実行しましたが、エラー自体出ませんね おかしなコンテナ残ってるんじゃないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問