IoTのデータ集積場所としてMySQL communityの利用を検討する(2)MySQL のGUIツールWorkbenchを使ってみる
MySQLには、データベース設計、開発、管理などをGUIで行うツールMySQL Workbenchが用意されています。MySQL Community Serverをダウンロードしてデフォルトの構成条件でインストールすると、MySQL Workbenchも利用できる状態になっています。
今回は、このMySQL Workbenchを利用してSQLサーバへの接続、データベースの作成、テーブルの作成、テーブルへのデータの設定、データの編集など行います。
●MySQL Workbenchの起動
MySQL Workbenchは、MySQLをインストーラでインストールすると、次に示すようにスタート・メニューの中にMySQLの項目が用意されます。この中にMySQL Workbenchも用意されています。このスタート・メニューのMySQL Workbenchを選択すると、Workbenchを起動できます。
Workbenchを起動する実行プログラムはMySQLWorkbench.exeで、このプログラムは、次のフォルダに格納されています。起動のアイコンを、スタートのタイルやタスクバーにピン止めして起動を容易にすることができます。Workbenchのプログラムは、ほかのMySQL関連のプログラムと同様に、Program Files\MySQLの中にあり、Program Files\MySQL\MySQL Workbench 8.0CEに格納されています。
MySQLをインストールした直後、MySQL ShellとMySQL Workbenchが起動します。
MySQLWorkbenchが起動すると、次の初期画面が表示されます。初めて起動されたMySQL Workbenchの画面なので、Welcome to MySQL Workbenchのメッセージに続いてWorkbenchの概要が示され、MySQL Workbenchのドキュメント、ブログ、フォーラムへの案内が青い文字で表示されています。この案内は、Helpの中にも用意されています。
MySQL Connectionの後に続く「〇の中に+」をクリックすると、新しいコネクションを作成できます。今回は、デフォルトで作成されたコネクション Local instance MySQL80をまず利用します。
Local instance MySQL80の接続をクリックすると、次に示すパスワードの入力画面が表示されます。MySQLのインストール時に管理者rootに設定したパスワードを入力します。
これで、MySQL Workbenchサーバへ接続できて処理ができるようになります。Save password in vaultをチェックすると、パスワードの入力が自動的に行われ、パスワードの入力の手間が省けます。
●データベースを作る
最初に、このサーバにデータベースを作成します。ツール・バーの左から4番目の、データベースを作成するアイコンをクリックします。マウス・ポインタをこのアイコンに近づけると、Create a new schema in the connected serverと表示されます。
アイコンをクリックすると、新しいデータベース(schema)を作るための画面が表示されます。
name欄のデータベース名new_schemaをiotdataに変更し、Applyのボタンをクリックして次に進みます。
オンラインDDLの設定を聞いてきます。データベースにオンラインでアクセスする際の整合性を保つための処理方法の選択ですが、デフォルトのままとします。データベース作成のSQL文 CREATE SCHEMA 'iotdata‘ が用意されます。Applyボタンをクリックして、データベース作成に進みます。
用意されたSQLが実行され、データベースの作成が成功したことが表示され、データベースの作成を完了します。
データベースの作成を終えて元の画面に戻ります。左中央付近のAdministrationのタグからSchemasのタグの選択に変更します。
SCHEMASの欄には、今回作成したデータベースiodataが追加されています。
画面左の、データベース(SCHEMAS)のiotdataを選択して三角▼のアイコンをクリックすると、iotdataの下のフォルダが展開されます。
インフォメーションの欄にはschema iodataが表示されます。データベースiotdataが作成されたことが確認できました。データベースiotdataの中身はまだ何もありません。iotdata以外のデータベースはサンプルで内容の確認ができます。
●テーブルの作成
MySQL Workbenchでテーブルを作成するには、ツール・バーの左から5番目の「Create a new table in the active schema in connected server」をクリックするか、SCHEMASのiotdataの下のTablesの表示をマウスの右ボタンでクリックして表示されるリストのCreate Tableを選択して次に進みます。
new_table-Tableのタグで、次に示すテーブルの作成画面が表示されます。この画面で、
①新しいテーブルの名称を設定する
②各フィールドの設定
③各フィールドの特性を決め、主キーを決める
などテーブル作成を進めます。
Table Nameにはテーブル名basetable010を入力しています。コメント欄にはテーブルの説明を入力してあります。
テーブル名を設定した後は、テーブルを構成するフィールドの設定を行います。フィールドは左端にColumn Nameと表記のある入力欄にフィールド名、その他の特性を設定します。このフィールドの設定領域を広げることもできます。この画面(ダイアログ)の右上にある二つ重なった山形のアイコンをクリックすると、設定領域が広がります。再度クリックすると元の画面に戻ります。
Column Nameの入力欄をマウスでクリックすると、デフォルトのフィールド名にidが付加されたフィールド名idbasetable010が入力されています。主キーを想定しているので、PKをチェックすると先頭のアイコンが主キーを示す黄色のアイコンに変わり、NN(NotNull)もチェックが付加されます。
最初のフィールドは主キーを想定しているので、UQ(Unique)とAI(Auto increment)も設定しました。
次からのデフォルトのフィールド名はテーブル名+colで、その次から1からの追番が付きました。DatatypeはデフォルトではVARCHAR(45)となっています。2番目のフィールドはESP32のマイコン・ボードのタイプ名をセットするので、VARCHAR(5)にしました。3番目のフィールドは01のデータ発信元コードを予定しているので、VARCHAR(2) にしました。4番目のフィールドはtempのデータ種別を予定しているので、VARCHAR(4) にしました。5番目のフィールドは測定日時を予定しているので、DATETIME にしました。6番目のフィールドは測定温度を予定しているので、DECIMAL(6,2) にしました。
設定を終えたら、GUIのダイアログ画面で設定された内容に従って、テーブル作成のためのSQL文が作られます。Applyボタンをクリックしてテーブル作成と、各フィールドの設定するSQL文が表示され実行を促す画面となります。この画面でSQL文を確認し、ApplyボタンをクリックしてSQL文を実行します。テーブルが作成されると次の完了画面になります。
エラーがなければExcute SQL Statementsと表示されます。Finishボタンをクリックしてテーブル作成の処理を終えます。エラーがあるとログにエラーが表示されます。多くは入力データの型、表示方法の間違いで、ログを確認し修正し再度実行します。
●作成されたテーブルの確認
次に示すように、左側のサイドバー・パネルのNavigatorの中のiotdata>Tables>basetable010を開くと、設定されたフィールドを確認できます。
●テーブルへデータをセット
MySQL WorkbenchではGUIでテーブルへのデータの入力、修正が行えます。次に示すように、Navigatorのテーブル名をマウスでクリックすると、テーブル名の右側に三つのアイコンが表示されます。左側のアイコンはテーブルの設定状況が表示されます。次のスパナのアイコンは、テーブルのフィールドの追加、変更、削除が行えます。右側のアイコンはテーブルにレコードの追加削除、フィールドにデータの編集が行えます。
テーブルにデータが格納されている場合はテーブルの内容が表示されます。今回はテーブルを作成したばかりで、上に示すようにテーブルにはなにも入っていません。
それぞれのフィールドに値を設定していきます。
デフォルトの設定値を決めているフィールドは、入力を省略するとSQLでレコードが作成されるときデフォルト値が入力されます。
主キーやデフォルト値が設定されているフィールドを、一部未入力の状態でApplyボタンをクリックして処理を実行します。次の画面で、処理を実行するためのSQL文が表示されます。再度ApplyボタンをクリックしてSQL文を実行します。
実行が終了しfinishボタンをクリックすると、未入力の部分に所定の値が設定されたテーブルが作成されます。
●GUIでデータベースの作成、テーブルの作成追加修正ができる
MySQL Workbenchというツールを利用して、SQLサーバへの接続、データベースの作成、テーブルの作成、テーブルへのデータの設定、データの編集などを確認しました。データベースを利用するための第一歩をMySQL Workbenchで確認できました。引き続きIoTのデータ格納場所としてMySQLの利用を進めていきます。
(2020/5/6 V1.0)
<神崎康宏>