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

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

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

Q&A

解決済

1回答

664閲覧

dockerでlaravelの開発環境を作ったが、DBへ接続(マイグレーション)ができない

marutto

総合スコア32

MySQL

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

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

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

0グッド

0クリップ

投稿2019/12/19 06:47

編集2019/12/19 06:58

qiitaの記事・リポジトリを元にdockerでlaravelの環境を作りました。

DBテーブルを作成したくて、migrationコマンドを打ちましたが、接続エラーが出て接続できません。

「dockerの.envファイル内のDB設定とlaravelの.envの記述を合わせる」
ことを試したのですが、うまくいかず困っています。
・エラー画面
イメージ説明

1.参考にしたqiitaの記事
Laravelの開発環境をDockerを使って構築する

2.使用しているdockerのリポジトリ
docker-laravel

3.やったこと
・DB名も自分の作る環境に合わせたくて、dockerの.envファイル下記のようにしました。

#COMPOSE_PROJECT_NAME=myproject PROJECT_PATH=./src TZ=Asia/Tokyo WEB_PORT=10080 APP_PORT=18000 DB_PORT=13306 DB_TESTING_PORT=13307 DB_NAME=opbook DB_USER=master DB_PASS=secret MAILHOG_PORT=18025 MAIL_HOST=mail MAIL_PORT=1025

この.envファイルは、使用しているリポジトリで紹介した.envファイルにあたります。

そして、laravelのsrcディレクトリ配下にある.envファイルは下記のようにしました。

APP_NAME=OPbook APP_ENV=local APP_KEY=base64:Kp3oED9CBMlUr4Q/XrNg61FQJNcZvXDFgQztPMe3jE4= APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=13306 DB_DATABASE=opbook DB_USERNAME=master DB_PASSWORD=secret BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

変更した3箇所、
DB_DATABASE=opbook
DB_USERNAME=master
DB_PASSWORD=secret
を合わせる以外にやれることが思い付かず手詰まりになっております。

4.その他
qiita記事中のコマンドを使って、mysqlコンテナへ接続することはできます。

mysqlコンテナへ入るコマンド

1docker-compose exec db bash -c 'mysql -uroot -p${MYSQL_PASSWORD} ${MYSQL_DATABASE}'

実際にdockerで作ったテーブルができているのも確認しました。
イメージ説明

以上、長文でお手数おかけしますが、アドバイスいただけますと幸いです。

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

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

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

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

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

m.ts10806

2019/12/19 06:56

つけられているタグがほとんど本件と関係ありません。アドバイスを得られる機会を失してるように思います。精査願います。
marutto

2019/12/19 07:00

仰る通り全く関係なかったですね、失礼しました。 修正し直しております。
guest

回答1

0

ベストアンサー

.env の DB_HOST へMySQLのコンテナ名を設定する。

Qiitaの記事のこの1文の可能性あり。

投稿2019/12/19 07:14

zushi0905

総合スコア683

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

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

marutto

2019/12/19 07:21

仰る通り、コンテナ名を入力したらできました! 記事にしっかり目を通せば分かることでしたね。すみません。 お陰様で先に進めそうです。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問