🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

Q&A

解決済

1回答

1406閲覧

MySQLサーバーに接続できない..command not found: mysql

kawaei222

総合スコア6

MySQL

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

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

0グッド

0クリップ

投稿2019/10/22 12:16

編集2019/10/28 12:25

前提・実現したいこと

DockerでPHPのローカル環境を構築したくて、

リンク内容

のサイトを参考(マルコピした)に構築し、その後mysqlサーバーに接続しようと

% mysql -u -psecret

など試しても、

zsh: command not found: mysql

となり、接続できません。上手くいけば、

Enter password: Welcome to the MySQL monitor. . . . mysql>

的な表示をさせたいのですが、
Dockerの知識もデータベースの知識も曖昧なのでこの問題の原因で何が起因しているか全然わかりません、、、。

該当のソースコード

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/data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: secret phpmyadmin: image: phpmyadmin/phpmyadmin:latest ports: - 8888:80 depends_on: - db

試したこと

docker-compose up -d  ```して、

docker ps 

を打ったら

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c6fd86418b7 nginx:latest "nginx -g 'daemon of…" 28 hours ago Up 41 minutes 0.0.0.0:8080->80/tcp php_nginx_1
68e6ddf2f212 php_php "docker-php-entrypoi…" 28 hours ago Up 41 minutes 9000/tcp php_php_1
da533de1296a phpmyadmin/phpmyadmin:latest "/docker-entrypoint.…" 28 hours ago Up 41 minutes 0.0.0.0:8888->80/tcp php_phpmyadmin_1
c490beb3e3fa mysql:5.7 "docker-entrypoint.s…" 28 hours ago Up 41 minutes 33060/tcp, 0.0.0.0:133

となるのでコンテナは起動できていると思いますが、そもそも、

% mysql --version
command not found: mysql

インストールすらされていない? なんかもう意味わかりません、、。 お願いします助けてください、、。 #回答を参考にしてからの追記 記入し忘れました、開発環境はmacのcatalinaです。 その後、

% docker exec -it php_db_1 bash

と入力すると左のアレがroot@xxxxxxx#みたいな表示に切り替わり、(成功したか?) もう一度、

mysql -u -p

を入力すると、

root@c490beb3e3fa:/# mysql -u user -p

Enter password:
ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES)

と新たなエラーが表示されました。

% docker exec -it php_db_1 bash

で状況が前進したのかどうなのか全然わかりません。 ### 解決しました docker-composeを立ち上げた状態で、

% docker exec -it php_db_1 bash

を入力すると、スーパーユーザーとしてmysqlのコンテナ内に入れます。 ```ここに言語を入力 # mysql -uroot -p Enter password:

で自分で設定したパスワードor rootを入力するとコンテナ内でmysqlモニタが使えます!

今回の問題は自分が新しいことをINPUTしすぎて混乱していたのが原因で、冷静に調べると解決することができました。

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

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

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

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

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

kawaei222

2019/10/22 12:27

ご指摘ありがとうございます。 直っているかわかりませんが修正しました。
Orlofsky

2019/10/22 12:33

質問を書く時に画面の下にプレビューがあります。 最初のURLは[DockerによるPHP開発環境構築(PHP + MySQL + Nginx)](https://qiita.com/nemui_/items/f911be7ffa4f29293fd5) とし、上下の ``` を削り、2つ目のURLは削除してください。他のMarkdownの機能の使い方も確認しておいてください。
guest

回答1

0

ベストアンサー

bash

1zsh: command not found: mysql

というメッセージから読み取れるのは、zsh とあるので、お使いのマシンは Mac で、しかも catalina にアップデートしたマシンということですかね。

% mysql -u -psecret

$ じゃなくて % にもなっているようなので、このコマンドは、Mac 上で入力したのでしょう。
Docker でインストールされた MySQL はあくまで仮想環境上にあるものなので、Mac上で打ってもそりゃインストールされていません。
このコマンドでは、localhost の 3306番 に繋ごうとしているので、繋がりません。

db: image: mysql:5.7 ports: - 13306:3306

という設定になっているて、通常のポート330613306 に向けている(ポートフォワード)ので、

% mysql -u root -P=13306 -psecret

でログインできるということになります。

ただし、mac には mysql-client がインストールされている必要があります。

投稿2019/10/22 12:38

編集2019/10/22 12:40
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

kawaei222

2019/10/22 14:38

素早い回答ありがとうございます! 追記しましたが、回答を参考にできたのかどうかわかりませんがいろいろ試すとまたエラーが誕生しました。権限がどうのこうの問題でしょうか?
退会済みユーザー

退会済みユーザー

2019/10/22 15:01

パスワードが間違っているんでしょう。、
kawaei222

2019/10/23 05:11

パスワード、、、ですか? docker以前に他の知識も足りなさすぎるようなのでいろいろ勉強し直してからdockerにもう一度挑戦したいと思います。。 せっかく回答して頂いたのに自分の力不足で解決に至りませんでしたがまた時がきたらこの回答を見直したいと思います! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問