質問: ### 前提・実現したいこと 『はじめてのPHPプロフェッショナル開発 PHP7対応』という書籍で勉強をしています。 dockerを使用しCakePHPでの開発を進めたいのですが、**MySQLに接続ができません。** 環境:Windows10 使用ツール:Docker for Windows (本がMacOS前提で書かれているのでコマンドが違っているのかもしれません。) ### 発生している問題・エラーメッセージ ``` 実行したコマンド mysql -u root -h 127.0.0.1 -P 13306 -p 次に実行してみたコマンド mysql -u root -h 127.0.0.1 -P 13306 -p secret ``` ``` エラーメッセージ mysql : 用語 'mysql' は、コマンドレット、関数、スクリプト ファイル、 または操作可能なプログラムの名前として認識されません。 名前が正しく記述されていることを確認し、 パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。 発生場所 行:1 文字:1 + mysql -u root -h 127.0.0.1 -P 13306 -p secret + ~~~~~ + CategoryInfo : ObjectNotFound: (mysql:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException ``` ### 該当のソースコード **docker-compose.yml** ``` version: '3' services: web: #サービス名の設定「web」 container_name: php-book-app-web #コンテナ名の設定 build: #ビルド時の設定 context: . dockerfile: ./Docker/php/Dockerfile #./Docker/php/Dockerfileを使ってビルドする指定 volumes: #ディレクトリのマウントの設定 - .:/var/www/html:cached environment: - API_DEFAULT_LOCALE=ja_JP - API_DEFAULT_TIMEZONE=Asia/Tokyo command: bash -c "sh docker-init-setup.sh && apache2-foreground" #apache2-foregroundを実行する処理 ports: #ポートフォワーディングの設定 - "5000:80" db: #サービス名の設定「db」 container_name: php-book-app-db #コンテナ名 build: #ビルド時の設定 context: . dockerfile: ./Docker/mysql/Dockerfile environment: #rootユーザーのパスワード設定 - MYSQL_ROOT_PASSWORD=secret ports: #ポートフォワーディングの設定 - "13306:3306" #3306はMysqlのデフォルトポート番号 ``` **Dockerfile** ``` FROM mysql:5.7 # 文字化け防止 ADD ./Docker/mysql/conf.d/my.cnf /etc/mysql/conf.d/my.cnf ``` **my.cnf** ``` [mysqld] character-set-server=utf8mb4 [mysql] default-character-set=utf8mb4 [client] default-character-set=utf8mb4 ``` ### 補足 WindowsPowerShellを使っており、**docker-compose up -d db**でMySQLは起動しました。 そのあと**mysql -u root -h 127.0.0.1 -P 13306 -p**で接続しようとしたのですがエラーメッセージが表示されます。 書籍がMac用に書かれていてWindowsとコマンド内容が違うせいかもしれません。 よろしくお願いします。
回答: あてずっぽう * 環境変数でパスが通っていない * mysqlクライアントがインストールされていない * 実行権限がない