はじめに
開発環境としてVirtualBox上に構築したLinuxゲストにMySQLをインストールし、ホストOS(例:Mac)からMySQLへアクセスする場面がよくあります。
個人の備忘録程度の走り書きとなっておりますが、温かい目で見守っていただければ幸いです。
本記事では、その手順を段階的に確認しながら、接続の可否を検証するためのポイントを備忘録としてまとめています。
書こうと思ったきっかけ
LaravelやWordPressなどのローカル開発環境をVirtualBox上で構築する中で、ホストからMySQLへ接続したいというケースがありました。しかし、初期設定のままでは接続エラーが頻発。その原因と解決策を整理しておきたく、記録として残すことにしました。
確認手順
1. MySQLが動いているか確認(ゲストOS内)
ゲストOSにログインし、MySQLが起動中かどうかを確認します。
systemctl status mysql
または
mysql -u root -p
2. MySQLの設定確認(my.cnf)
設定ファイル /etc/mysql/my.cnf
または /etc/my.cnf
を編集します。
bind-address = 0.0.0.0
※この設定により、MySQLが全てのIPアドレスからの接続を受け付けます。
変更後はMySQLを再起動します。
sudo systemctl restart mysql
3. ユーザーと権限の確認(MySQL側)
MySQLにログイン後、リモートからの接続を許可するユーザーを作成します。
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
4. ポートフォワーディングの設定(VirtualBox)
VirtualBoxのVM設定画面から:
- 設定 → ネットワーク → アダプター1(NAT)→ 高度 → ポートフォワーディング
以下の内容でエントリを追加:
名前 | プロトコル | ホストIP | ホストポート | ゲストIP | ゲストポート |
---|---|---|---|---|---|
mysql | TCP | 127.0.0.1 | 3306 | 10.0.2.15(※) | 3306 |
※ ゲストIPは、ゲストOS内で ip a
コマンドなどで確認してください。
5. ホストOS(Mac)から接続テスト
mysql -h 127.0.0.1 -P 3306 -u your_user -p
→ パスワードを入力し、接続できれば成功です!
まとめ
VirtualBox上のMySQLにホストから接続するには、MySQLの設定だけでなく、VirtualBoxのネットワーク設定やユーザー権限も適切に設定する必要があります。
問題が起きた際は、以下の順で確認していくのがおすすめです:
- MySQLが起動しているか?
-
bind-address
が正しく設定されているか? - ユーザーにリモート接続権限があるか?
- VirtualBoxでポートフォワーディングされているか?
今後の開発環境構築時にも参考にできるよう、丁寧に検証して記録しておくことで、トラブル時の解決がスムーズになります!