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

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

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

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

5492閲覧

homesteadからデータベースに接続する(Laravel)

toto654

総合スコア39

MySQL

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

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2019/01/21 10:44

前提・実現したいこと

Laravelでデータベース(pgsql)に接続する際に、
config/database.php
イメージ説明
.envイメージ説明

1.このようにDB_PORTを今回はpgsqlなので5432とやるとhttp://homestead.test/folderなどでデータベースを使用する画面を表示する際にはエラーにならずに動作します。
逆に、git bashやこのアプリ↓の方はエラーになってしまいます。イメージ説明

2.今度はDB_PORTを54320とするとhttp://homestead.test/folderなどのデータベースを扱う画面を表示する際にはエラーが発生してしまいます。
イメージ説明
しかし、git bashや先ほどのアプリなどではエラーが起きずに動作する。

###考えたこと
公式を見たらこのように説明が書いてありました。これとなんか関係ありますか?
イメージ説明

この現象は普通で普段使う際には切り替えて使うのが普通ですか?それとも別の設定がありますか?
ご教授の程よろしくお願いします。。

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

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

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

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

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

guest

回答1

0

ベストアンサー

公式を見たらこのように説明が書いてありました。これとなんか関係ありますか?

はい、あります。

Homesteadは仮想マシン上で動作していることに留意する必要があります。

.envは仮想マシン内部から見たポート番号を記載します。これが5432です。

一方、Git Bashなどによるアクセスが「ホストマシンのデータベースクライアントからのアクセス」に該当します。こちらは54320になります。


簡単なイメージ図ですが、追記します。
イメージ図

投稿2019/01/21 12:09

編集2019/01/22 04:41
kazto

総合スコア7196

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

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

toto654

2019/01/21 12:19

回答ありがとうございます。では、この動作は正常であり使用する用途に応じて都度変更していくってことですか?
kazto

2019/01/21 12:26

正常な動作です。 使用用途によって、というおっしゃり様、仮想マシンで動作していることへのご理解が不十分なように感じました。 ポート番号は都度変更する必要はありません。 どこから接続するか、によって接続先を変える、という方が適切かと思います。
toto654

2019/01/21 12:34

回答ありがとうございます。理解が不十分です。すみません。 .env config/database.phpにポート番号を書く場所があると思いますが、現在はそこを変えて対応してますが、 >ポート番号は都度変更する必要はありません。 と回答頂いたように、これは変更せずに 接続先を変える言うのはどうゆうことかもう少し教えて頂きたいです。
kazto

2019/01/22 04:42

図を追記しました。
kazto

2019/01/22 04:45

LaravelでDBに接続することは、仮想環境の中からDBサーバ5432番へ接続することになります。 ホストPCからGitBashで接続することは、54320→仮想マシンの5432、と辿ってDBへアクセスすることになります。 Homesteadによって、仮想マシンがポートフォワードを行うように設定済みであるため、ユーザは意識せずにDBへアクセスできるようになっています。
toto654

2019/01/22 12:24

詳しい説明ありがとうございます。 前提・実現したいことの1で書きました、ホストPCから接続する際にはHomesteadによって仮想マシンがポートフォワードを行ってくれるからユーザが意識せずにDBへアクセスできることは分かりましたが、GitBashがエラーになってしまい前提・実現したいこと2で書いたように変更すると接続できるのはなぜですか? これはホストPCはしっかりポートフォワードが行われているがGitBashでは正常に行われてないってことですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問