前提・実現したいこと
『はじめての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とコマンド内容が違うせいかもしれません。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー