この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ローカルマシンのホスト側から、仮想環境側のMySQLにアクセスする方法についてまとめます. (仮想環境は, VirtualBoxを利用)
1. 仮想環境の設定
VirtualBox NATの設定で、
PortForwardingの設定を行う
- HOSTポート: 53306
- GUESTポート: 3306(ゲストのMySQLポート番号)
2. 仮想マシン側MySQLの設定
VirtualBox のNATは、ゲスト側からのホストIPが 10.0.2.2 に設定されている
そのため、10.0.2.2のアクセスを許可させる必要がある
$ mysql -u <ユーザ名> -p
mysql> use mysql
ユーザの作成
mysql> CREATE USER '<ユーザ名>'@'10.0.2.2' IDENTIFIED BY '<パスワード>';
権限の追加
mysql> GRANT ALL PRIVILEGES ON `<DB名>`.* TO '<ユーザ名>'@'10.0.2.2';
mysql> FLUSH PRIVILEGES;
確認
mysql> SHOW GRANTS for <ユーザ名>@10.0.2.2;
3. ホスト側
Railsアプリケーションでの, database.yml の設定
default: &default
adapter: mysql2
encoding: utf8
pool: 5
username: <ユーザ名>
password: ***
database: <DB名>
host: 127.0.0.1
port: 53306(PortForwarding設定した, HOST側ポート)
以上で、仮想環境へのMySQLに接続が可能になります。
DBを変える場合は, 2の権限の追加を, 変更するDBに対して行います。