やりたいこと
ubuntuイメージのvirtual box にmysqlを入れてホストOSのjavaプログラムから利用できるようにします。
ここで作成したデータベースはサンプルで作成しているjavaプログム(作成中)から利用できるようにします。
事前準備
- virtual boxのインストール
- ubuntuイメージのダウンロード
- teratermなどsshクライアントツールのインストール(windows)
手順
ダウンロードしたvhdファイルからvirtual boxのイメージを作成する
- virtual boxを起動してこの手順を参考にダウンロードしたubuntuイメージを取り込む。
ホストOSからssh接続できるようにする。
ゲストOSないでコマンドを打っていくのがしんどいので、ホスト側のterminalからコマンドが打てるようにする。
-
apt-getが使えるようにする。
sudo apt-get update
を実行し、接続エラーになった場合/etc/resolvconf/resolv.conf.ds
以下にあるbase
を書き換えて、DNSの設定をする。```` $ # バックアップの取得 $ sudo cp /etc/resolvconf/resolv.conf.ds/base /etc/resolvconf/resolv.conf.ds/base cp /etc/resolvconf/resolv.conf.ds/base /etc/resolvconf/resolv.conf.ds/baseBK $ # ファイルを編集 $ vi cp /etc/resolvconf/resolv.conf.ds/base $ # ファイル内に下記の記述を追加 nameserver 8.8.8.8 $ # webに接続できることを確認 $ sudo apt-get update ````
-
openssh-serverをインストール
sudo apt-get install -y openssh-server
-
sshサービスを起動
sudo service ssh start
-
sshが起動していることを確認
sudo lsof -i:22
と入力して
sshd 3457 root 3u IPv4 21430 0t0 TCP *:ssh (LISTEN)
みたいな結果が帰ってくることを確認 -
virtual boxのネットワーク設定をする
vritual boxのメニュー>設定>ネットワーク
から接続方式がNAT
になっていることを確認する。
同じタブ内で詳細>ポートフォワーディング
を選択し、下記のように設定する。

- ホスト側のterminalからssh接続ができることを確認
ssh {vmマシンのユーザー名}@localhost -p 222
でVMマシンに接続し、求められたパスワードを入力する。
mysqlのインストール
ubuntuイメージないでmysqlに接続できるようにする。
この手順を参考にする
データベースの設定
javaサンプルプログラムで利用するテーブルを作成します。
ここから先の作業はsudo mysql -u root -p
を実行しデータベース内に入り、下記のようなコマンド入力画面で行います。
1.DB作成からテーブルの作成まで
```
# データベースを作成
create database sample;
# 作成したデータベースを選択
use smaple;
# sampleデータベースにCOMMODITYテーブルを作成する
CREATE TABLE `sample`.`COMMODITY` (`COMMODITY_NAME` VARCHAR(100) NOT NULL,`STOCK_COUNT` INT NOT NULL,UNIQUE INDEX `COMMODITY_NAME_UNIQUE` (`COMMODITY_NAME` ASC));
```
- テストデータを入れる
INSERT INTO `sample`.`COMMODITY` (`COMMODITY_NAME`, `STOCK_COUNT`) VALUES ('テスト', '10');
ホストからデータベースに接続する
- virtual boxのネットワーク設定をする
vritual boxのメニュー>設定>ネットワーク
から接続方式がNAT
になっていることを確認する。
同じタブ内で詳細>ポートフォワーディング
を選択し、下記のように設定する。

-
ここを参照して
/etc/mysql/my.cnf
を書き換える。
データベースへの接続を全てのIPから許可するようにする。 -
ここを参照し、データベースにユーザーを追加する。
書き換えないとroot
ユーザーでしかログインできないため色々と面倒。。。
これでホストOSからlocalhost:3308
を指定するとvirtualboxのデータベースに接続できるようになる
自動起動設定
VM再起動時にssh接続とmysqlへの接続ができるように、sshとmysqlにが自動で起動するように設定する。
-
sysv-rc-confのインストール
sudo apt-get install sysv-rc-conf
-
自動起動設定
sudo sysv-rc-conf mysql on`` sudo sysv-rc-conf ssh on
sudo sysv-rc-conf --list
でmysqlとsshの自動起動にonがついていることを確認