✍️

サーバにあるLaravelのデータベースにいつものアプリでアクセスするには。

2024/09/04に公開

まえがき

こんにちは、Laravelプログラマーの皆さん。
皆さんはリモートサーバにある本番環境やステージング環境のDBにアクセスする時、どうやっていますか?

大抵の人はphpMyAdminを使っているのではないでしょうか?
でも、Web版のphpMyAdminって結構使いにくいですよね。
それでもレンタルサーバが用意してくれていればまだいいですが、vpsとかだと入ってなかったりします。

あなたはSSH接続設定だけもらっていますが、さあ、どうしましょう?
コマンドラインでMySQLにログインしてSELECT文で調べますか?
ちょっと面倒臭いですね。

いつものアプリから接続できる

じつは、SequalAceなどのクライアントアプリから直接接続できます。
アプリによって多少違いはありますが、SSH接続タブなどがどこかにあると思います。
そこで以下のように入力します。

Head Head
MySQL Host .envのDB_HOSTの値
Username .envのDB_USERNAMEの値
Port .envのDB_PORTの値
Database .envのDB_DATABASEの値
SSH Host ~/.ssh/configのHostの値
SSH User ~/.ssh/configのUserの値
SSH Password ~/.ssh/configのPasswordの値
SSH Port ~/.ssh/configのPortの値

.envはサーバ内のLaravelプロジェクトルート、ssh/configはローカルフォルダのものです。

これは何をやっているかというと、サーバにログインしたあと、そのサーバの権限でDBにアクセスしているイメージです。

この仕組みは踏み台サーバと呼ばれるもので、Laravelサーバを経由せずに直接DBサーバにアクセスしようとしても、ログイン権限がないため接続できません。
もし、そんなことが出来るなら、レンタルサーバの会員じゃない人がアクセスできたりしてしまいます。

おわりに

私はこのやり方を知らずに数年間、面倒な思いをしてきました。
皆さんはこれを真似してサクッとつないでしまいましょう。

.envを解析すれば他にもいろいろな接続設定やパスワードがわかります。
Laravelの環境構築に困ったら動いている環境の.envを調べる。これを癖づけておきましょう。

株式会社ONE WEDGE

【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
https://onewedge.co.jp

Discussion