はじめに
以前も、VirtualBoxのゲスト
OS に対しホストOS から接続する方法を残してありました。
https://weblion303.net/1571/
上記の記事ではブリッジを使った方法ですが、NATでポートフォワーディングの設定をしたほうがより簡単でしたので、以下に残しておきます。
こんなとき
1.仮想マシンで立ち上げたwebサーバーにホストOSからアクセスしたい
2.ゲストOSのmysqlサーバーに対しホストOSからアクセスしたい
今回は2番をメインに紹介します。
着地点はmysqlクライアントのA5SQLを使ってゲストOSのmysqlに接続するところまで。
ポートフォワーディングの設定
VirtualBoxマネージャーの設定を開く

ネットワーク→ポートフォワーディングへ

ルールを作成する

上記の場合、ホストの3336ポートにアクセスすると、ゲストの3306ポートに流す。ホストの3000ポートにアクセスすると、ゲストの3000ポートへ。ホストの2222ポートだと…という感じ。
この状態で保存し、例としてゲストOS内でlocalhost:3000でnodeのアプリケーションサーバーを起動すると、ホストOSのブラウザでlocalhost:3000でも見ることができるようになる。
A5SQLでの設定

まずはゲストOS側でmysqlに接続するときと同様の設定を「基本」に入力

「SSH2トンネル」タブに、先ほどポートフォワーディングのルールで設定したポートを入力し、ゲストPCへのログイン情報を入力

テスト接続に成功すると、データベースの選択ができるようになる。
mysqlに接続できない場合、権限エラーがまず考えられるのでmysqlユーザーのGRANTの設定を見直すといいです。
https://www.dbonline.jp/mysql/user/index6.html#section7
そもそもSSHに失敗してしまう場合は、ゲストPCのubuntu側でssh接続ができるようになっているか確認。
sshできるようにするには以下のコマンド
sudo ufw allow 22
sudo ufw reload
sudo apt install openssh-server