サーバにあるLaravelのデータベースにいつものアプリでアクセスするには。
まえがき
こんにちは、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スキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion