開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. 【Laravel】ポートフォワーディングしてローカル環境からリモート環境のデータベースへアクセスする方法

【Laravel】ポートフォワーディングしてローカル環境からリモート環境のデータベースへアクセスする方法

こんにちは。
ニシザワです。

本日はローカル環境(vagrant等)のLaravelからリモート(クラウドなど)環境のデータベースにアクセスしてデータベースのみ共有して共同開発する方法をご説明します。
例えば、データベースをリモート環境に置いておくことで、各開発者が同じデータを扱えるのでデータの齟齬ができない案件や
そもそも、DBの容量が大きすぎてローカルだとリストアするのも大変なんてときに便利です。

では、説明していきます。
まずはLaravelの.envの設定です。

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=15432
DB_DATABASE=hoge_name
DB_USERNAME=hoge_user
DB_PASSWORD=screat
ポイントは、ポートを適当なものに変更しておくことです。
あとは、vagrant等でポートフォワーディングさせて上げれば大丈夫です。
今回はsshでのポートフォワーディングです。
vagrant等の中で

ssh -N -L 15432:127.0.0.1:5432 hoge@fuga.co.jp
公開鍵認証をする場合は-iオプションを付ければ大丈夫です。
こちらは、ポート15432に来たものをリモート環境の5432に設定しています。
postgresqlの場合外部からのアクセス許可が必要ですので
pg_hba.confを

host    all             all             127.0.0.1/32            md5
としておきましょう。
mysqlの場合はmysqlにログインし

grant all on hoge_name.* to hoge_user@'%';
と権限を付与します。
こちらで。ローカルからリモートへアクセスしてDBの操作が行えますので是非試してみてください。
TOPに戻る