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

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

新規登録して質問してみよう
ただいま回答率
85.46%
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回答

782閲覧

phpmyadminで、nodeコンテナ内にあるmysqlのdbにアクセスしたい。

s.mima

総合スコア8

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/11/28 14:20

docker含むエンジニア初心者です。
今現在、オリジナルプログラムを制作しています。そこで、どうしてもphpmyadminからnodeコンテナ内にあるmysqlのdbにアクセスがしたいです。ただ、2週間以上できず、どなたかご教授いただけないでしょうか。

前提・実現したいこと

dockerを使用して、phpmyadminコンテナとnodeコンテナを立ち上げました。そして、dockerfileのCMDを使用して、nodeコンテナにmysqlがインストールされるようにしました。mysqlがインストールされていることは確認済みで、空のテーブルを作成しています。(start.upとstartdata.sqlのスクリプトファイルを使って。)
phpmyadminでnodeコンテナ内にあるmysqlにアクセスしたいです。

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

イメージ説明

該当のソースコード

  • docker-compose.yml
version: "3.7" services: app: privileged: true networks: - node-network build: ./docker/ container_name: node_miwa tty: true stdin_open: true volumes: - ./:/app - ./docker/startdata.sql:/docker-entrypoint-initdb.d/startdata.sql - ./docker/my.cnf:/etc/my.cnf environment: DEBIAN_FRONTEND: noninteractive MYSQL_USER: root MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test_db TZ: "Asia/Tokyo" ports: - "3306:3306" phpmyadmin: networks: - node-network links: - app depends_on: - app image: phpmyadmin/phpmyadmin container_name: phpmyadmin_miwa restart: always ports: - "8080:80" volumes: - ./:/app - ./docker/startdata.sql:/docker-entrypoint-initdb.d/startdata.sql - ./docker/my.cnf:/etc/my.cnf environment: PMA_ARBITARY: 1 PMA_HOSTS: app MYSQL_ROOT_USER: root MYSQL_ROOT_PASSWORD: password networks: node-network: driver: bridge
  • Dockerfile
# ベースイメージを指定 FROM node:14.0.0 ENV NODE_ENV=development # ディレクトリを移動する WORKDIR /app # ポート3000番を開放する EXPOSE 3000 # nodeコンテナ立ち上げ時に、mysqlをインストールする為のコマンド COPY startup.sh /startup.sh RUN chmod 744 /startup.sh CMD ["/startup.sh"]
  • startup.sh
#!/usr/bin/env sh apt-get apt update apt install -y mysql-server apt install -y iptables-persistent apt-get update apt-get install -y vim apt-get install -y iputils-ping net-tools service mysql start chmod 600 /etc/my.cnf mysql -u root < /docker-entrypoint-initdb.d/startdata.sql tail -f /dev/null
  • startdata.sql
CREATE DATABASE test_db; create table test_db.test_table(id int not null primary key, user text not null, favarite_food text, morning_time date, animation text); show columns from test_db.test_table;

試したこと

ネットの情報などを見て、できそうなことは全てやったつもりです。
例えば、docker-compose.ymlでenvironmentのPMA_HOSTをappにするなどです。
しかし、どの記事を見ても、nodeコンテナ内にmysqlをインストールして、アクセスを試みている人はいなく、phpmyadminとmysqlの2つのコンテナがある環境で、アクセスを試みています。ですので、私がやりたいのと少し異なります。

補足情報

どなたかご教授いただけますと、本当に幸いです。

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

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

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

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

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

guest

回答1

0

phpmyadminの設定でmysqlのホストをappにして繋いでみたことはありますか?

投稿2021/11/28 15:27

skys215

総合スコア910

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

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

s.mima

2021/11/28 15:50

コメントありがとうございます! docker-compose.ymlのenvironmentで ``` PMA_HOSTS: app ``` をすることで、mysqlのホストをappにしているつもりですが、間違えているでしょうか。
skys215

2021/11/28 16:24

すみません。見てませんでした。 phpmyadminのコンテナに入って、hostsにappがあるかどうか確認できますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問