MySQL
SSH
vagrant
navicat

Vagrant内のデータベースにGUIでアクセスするには

More than 3 years have passed since last update.

Vagrant環境で開発中のシステムについて、DBの中身を確認したいことがあります。もちろん、VagrantをPublic(Bridge)ネットワークに設定しておけば、通常のサーバのように外部のアプリケーションからアクセス可能です。ただ、MacBookなどで使う場合、en0: Wi-Fi (AirPort)をブリッジ先に設定していると思いますが、出先ではWiFiに繋がっていない限り、このNICを使うことはできず非常に不便です。

Navicat for MySQL.png


Vagrantは共有の秘密鍵を使っている

$ vagrant sshだけで簡単に仮想マシンに入れるのは、Vagrantの便利な点です。残念ながら、GUIアプリケーションから、この恩恵を得ることは出来ませんので、手動で繋ぐ必要があります。デフォルトであれば次が接続情報です。


  • 接続先: localhost

  • ポート番号: 2222

  • 秘密鍵: ~/.vagrant/insecure_private_key

  • パスフレーズ: なし

Vagrantは上記コマンドで簡単にログインできるよう、Vagrant Boxの作成者に共通の秘密鍵を使うように推奨しています。同じものが、~/.vagrant/内に配置されているはずです。

※ローカルのVagrant Box以外でこの鍵を使うのは危険です。VagrantをLANからアクセスできるようにする場合も、別の鍵にした方が良いでしょう。念のため。


SSHでVagrant内にトンネルする

それでは、実際にアプリケーションからアクセスしてみましょう。ここでは、Navicat for MySQLを使って説明します。Navicat Essentialsでも同様のことが可能なはずです。

まず、Vagrant内でデータベースにアクセスするための設定を、Generalタブで。ポートを変更している場合は、それを指定します。


  • User Name: 設定したユーザ名 or root

  • Password: 設定したパスワード

Connection Properties - General

Navicatは単体でSSHトンネルの機能を持っているので、Terminalから別途コマンドを叩いておく必要はありません。続けて、SSHタブで前述の接続情報を入力します。Private Keyにはパスを直接キーボードから入力しましょう。パスフレーズは空欄のままでOKです。

Connection Properties - SSH

設定できたら、Test Connectionを実行して確認します。うまく接続できると、冒頭の画面のようにDBの一覧が表示されます。