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

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

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

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

Docker

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

Q&A

0回答

205閲覧

Dockerでローカルのデータベースに接続したい。

donkuri

総合スコア81

mysqli

MySQLiはPHP5より導入されているデータベース用のドライバです。MySQL 4.1.3以降の新しい機能の利点をまとめています。

Docker

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

0グッド

0クリップ

投稿2023/01/15 07:22

前提

Dockerで環境を作り、その中にLaravelのアプリケーションを作りたいです。
ただデータベースはローカルのmysql使おうかなと思いました。

まず以下サイトを参考に、Dockerを立ち上げて、laravelプロジェクトを作りました。
ただ、docker-composer.ymlからDBの項目は消しました。

https://www.torat.jp/laravel-docker-lemp/

そしてlaravelの.envファイルのデータベースのDBの箇所を変えました。

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user DB_PASSWORD=password

   

それからモデルを作り、
tinkerでデータベースにデータを追加などしてみましたが特に問題はありませんでした。

問題は、コントローラーを作ってviewでデータベースの内容を表示させようとしたときに、エラーが出ました。

SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

色々と調べて、laravelの.envファイルのDB_HOSTを変えました。
これでエラーは消えました。

DB_CONNECTION=mysql DB_HOST=gateway.docker.internal DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=laravel_user DB_PASSWORD=password

ところが、これでtinkerを使おうとすると、
またさっきのエラーが出ます。

DB_HOST=127.0.0.1
に戻すとtinkerは使えますが、viewでエラーが出ます。

DB_HOST=gateway.docker.internal
にするとviewは治りますが、tinkerでエラーが出ます。

  

どうしてこんなことが起こるのでしょうか?

Dockerもサーバーも詳しくないため理由もよくわかりません。
どなたかご教授お願いいたします。

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

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

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

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

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

hoshi-takanori

2023/01/15 08:21

Docker はホストとは独立した環境なので、docker 内の localhost (127.0.0.1) はホストではなく docker 内の環境を指すような…。
donkuri

2023/01/15 08:35

ありがとうございます。 はい そこまではなんとかたどり着いて、 DB_HOST=gateway.docker.internal にしました。 でもそうすることで違うところにエラーが出てしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問