ゼロから始める開発環境構築(Rails MySQL) その3

##MySQL Workbenchの準備

[前回](https://qiita.com/hirokisuganuma/items/2216134fd44cefdbfd7d)の続き
はじめの記事は[こちら](https://qiita.com/hirokisuganuma/items/6ef3334f8339f165e48b)


MySQL WorkbenchとはGUIでDBの状態を確認したり、パッチを当てたりetcできるツール




下記からダウンロードします。

バージョンは最新のもので問題ありません。
https://dev.mysql.com/downloads/workbench/

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/e8fd904e-830b-fdc3-f49b-383f5c883544.png)

使用されているOSを選択してダウンロード（インストールはすべてデフォルトで問題ありません。）

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/b8c5f9b7-02f8-d472-2856-460c3961fd97.png)


開くとこのような画面が出ると思います。

新しい接続を設定したい場合、中央あたりにある＋ボタンを押します

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/168bfdf1-0513-2e08-aaeb-de951228ae2d.png)

##DBへの接続


接続のイメージはまず仮想環境に接続し、それを踏み台にDBにアクセスするイメージ？で自分は考えています。
下記コマンドで設定に必要な情報を表示させます。（仮想環境は立ち上がっている前提です。）

```
$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/hirok/Desktop/study/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

```

必ず設定値は同じ認識でいましたがWinとMacの両方で確認しましたがちょっと違う場合がありました。
ので一応確認、ちなみに`vagrant up`した際に出てくる結果の中にもあるのでそこで確認しても問題ないです。

これをWorkbwnchのほうへ記載します。


![設定撮り直し.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/53d2050a-9c3f-8013-9af7-4450505e852b.png)

設定補足
Connection Nameは適当に何か入れる（無いと設定できない）
Connection MethodはStandard TCP/IP over SSH
HostNameの 127.0.0.1の後ろにポート番号を入れます（:を忘れずに）
`store in Vault...`と表示されているボタンは各環境にアクセスするパスワードを入力します。

SSHPasswordはデフォルトはvagrant
PasswordのほうはMYSQLで設定した（その２で）任意のパスワードになります。
SSH鍵で接続することももちろんできます。

下のほうにある`Test Connection`ボタンで接続確認ができます。
初期設定の場合はOKボタンがあるはずなので接続確認したらOKで完了です。

#Workbenchの操作

開くとこんな感じの画面が出ます。

![workbenchはじめの画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/44d1e31b-985b-9c2a-e0f2-b13f2c4e3036.png)


任意のDB・テーブルをクリックしていきます。

**※筆者はこの時点でテスト用のアプリをscaffoldで適当に作っています。**

![workbench 二個目の画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/5dc60183-58a5-2c12-41d6-b6d018f5f421.png)

試しにusersテーブルが確認したい場合は右クリックして`Select Rows - Limit 1000 `を選択

![画面3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/0ff3e273-3ee9-77d8-df55-15b54c7c4ecf.png)

デフォルトで3人テストユーザーを追加してあるのでそれが確認できます。
SQLに慣れている方であれば上にQueryが表示されているのがわかると思いますがここに任意のSQLを追記すれば思うように動かせます。

![画面4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/b2679f92-e515-67b7-360e-7364ea2161ab.png)

実行は左上の雷マークで実行します。

![画面5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/94d13057-2cdc-5bd1-91d3-b6f67eb1f95b.png)

成功すればこんな感じ

![画面６.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/d237106e-15ce-1389-2fc0-cdae17becc27.png)


カラムの値を直接いじることもできます

![画面7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/43d993ce-926a-a2a8-56b5-0d0ad8953c07.png)

テスト　太郎　を変更　太郎に変更

![画面８.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/9bc1c3d4-0654-c587-be31-aba72fcd7c74.png)

`Apply`ボタンを押すと

![画面９.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/005c1afc-4555-cb7d-37f7-c8e3c6505441.png)

こんなアップデート投げるけど良いか？？って聞かれるので確認して`Apply`

![画面10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/bb0dbcc4-373d-bccb-a830-81fe667aed25.png)

めでたく完了すればDBの値が変わっています。

![画面１１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/295552/eb2647d9-6063-9949-b618-73047ac8374d.png)


##最後に雑談

今回はほぼ最低限の立ち上げから設定のみですがいろいろ慣れてくると工夫できるようになります。

自分は共有フォルダは設定せず、WinSshFSとかWinsSCPというもので仮想環境上のファイルを触るので普段の運用では自分はVirtualBoxから直接起動をかけています（vagrant upだと遅いので）
Macにも似たようなツールがあります。

**※共有フォルダの設定をしている場合はvagrantから仮想環境を立ち上げないと共有フォルダが参照されませんのでご注意を**

~~[WinSshFSを設定したい人はちょっと難しいのでこちらが参考になります](https://qiita.com/onomame/items/342bc9025ac209cab34b)(Windows限定)~~
[↑最近動作がとても不安定で使用しているツールを変えました](https://qiita.com/hirokisuganuma/items/0d5918cb1620dbca1335)**※2019/12/22追記**

SSH接続はPuttyやTera Termというクライアントツールで接続して使っています

VM（仮想環境のことです）のシェルをzshに変更したりvimのプラグイン入れたりと仮想環境の設定はやりだすと楽しいですね


これはWindows限定の話ですがたまにWindows Updateかけた後勝手にネットワーク設定書き換えられてVMが立ち上がらなくなることがあります
[そんな時にこの記事が参考になりました](https://qiita.com/ExA_DEV/items/ae80a7d767144c2e1992)
結構Windowsは勝手に設定変わったりするので注意が必要です。

これを機に自分だけの理想の開発環境を作る第一歩を踏んでみてください＾＾