0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

VBのubuntuにmysqlを入れてホストOSからDBを利用する

Posted at

やりたいこと

ubuntuイメージのvirtual box にmysqlを入れてホストOSのjavaプログラムから利用できるようにします。
ここで作成したデータベースはサンプルで作成しているjavaプログム(作成中)から利用できるようにします。

事前準備

手順

ダウンロードしたvhdファイルからvirtual boxのイメージを作成する

  1. virtual boxを起動してこの手順を参考にダウンロードしたubuntuイメージを取り込む。

ホストOSからssh接続できるようにする。

ゲストOSないでコマンドを打っていくのがしんどいので、ホスト側のterminalからコマンドが打てるようにする。

  1. 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
    ````
    
  2. openssh-serverをインストール
    sudo apt-get install -y openssh-server

  3. sshサービスを起動
    sudo service ssh start

  4. sshが起動していることを確認
    sudo lsof -i:22と入力して
    sshd 3457 root 3u IPv4 21430 0t0 TCP *:ssh (LISTEN) みたいな結果が帰ってくることを確認

  5. virtual boxのネットワーク設定をする
    vritual boxのメニュー>設定>ネットワークから接続方式がNATになっていることを確認する。
    同じタブ内で詳細>ポートフォワーディングを選択し、下記のように設定する。

スクリーンショット 2019-09-15 14.03.23.png
  1. ホスト側のterminalからssh接続ができることを確認
    ssh {vmマシンのユーザー名}@localhost -p 222でVMマシンに接続し、求められたパスワードを入力する。

mysqlのインストール

ubuntuイメージないでmysqlに接続できるようにする。
この手順を参考にする

データベースの設定

javaサンプルプログラムで利用するテーブルを作成します。
ここから先の作業はsudo mysql -u root -p を実行しデータベース内に入り、下記のようなコマンド入力画面で行います。
スクリーンショット 2019-09-15 14.16.48.png

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));
         ```
  1. テストデータを入れる
INSERT INTO `sample`.`COMMODITY` (`COMMODITY_NAME`, `STOCK_COUNT`) VALUES ('テスト', '10');

ホストからデータベースに接続する

  1. virtual boxのネットワーク設定をする
    vritual boxのメニュー>設定>ネットワークから接続方式がNATになっていることを確認する。
    同じタブ内で詳細>ポートフォワーディングを選択し、下記のように設定する。
スクリーンショット 2019-09-15 17.12.55.png
  1. ここを参照して/etc/mysql/my.cnfを書き換える。
    データベースへの接続を全てのIPから許可するようにする。

  2. ここを参照し、データベースにユーザーを追加する。
    書き換えないとrootユーザーでしかログインできないため色々と面倒。。。

これでホストOSからlocalhost:3308を指定するとvirtualboxのデータベースに接続できるようになる

自動起動設定

VM再起動時にssh接続とmysqlへの接続ができるように、sshとmysqlにが自動で起動するように設定する。

  1. sysv-rc-confのインストール
    sudo apt-get install sysv-rc-conf

  2. 自動起動設定
    sudo sysv-rc-conf mysql on`` sudo sysv-rc-conf ssh on
    sudo sysv-rc-conf --list でmysqlとsshの自動起動にonがついていることを確認

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?