Windows 10にMySQL Workbenchをインストールする方法と初歩的な使い方の説明
はじめに
MySQL WorkbenchはMySQLサーバーと同じOracleが開発している無償で使えるMySQLサーバー専用のデータ管理ツールです。この記事ではWindows 10へMySQL Workbenchをインストールする方法、および初歩的な使い方を説明します。
MySQL Workbenchのダウンロード
ダウンロードページ( MySQL :: Download MySQL Workbench )からインストーラ(mysql-workbench-community-8.0.19-winx64.msi
)をダウンロードします(2020年3月現在の最新バージョンです)。
ダウンロード画面(Fig1)の赤い枠線で囲った"Select Operating System:"は"Microsoft Windows"を選択、ダウンロードするファイルは"Windows (x86, 64-bit), MSI Installer"を選びます。
次のダウンロード画面(Fig2)の赤い枠線で囲った”No thanks, just start my download.”というリンクをクリックするとダウンロードが始まります。
なお、MD5チェックサムの検証方法は、この記事で説明していますのでご覧ください。 rubytomato.hateblo.jp
以上でMySQL Workbenchのダウンロードは完了です。
MySQL Workbenchのインストール
ダウンロードしたインストーラ(mysql-workbench-community-8.0.19-winx64.msi
)をダブルクリックして実行します。
インストール自体はインストーラの画面の通り進めていけばOKです。
インストールが完了すると、そのままMySQL Workbenchが起動します。(Fig8)
コネクションの作成
まず、コネクションを作成する前にMySQLサーバーを起動しておきます。 次にMySQL Workbenchのトップ画面(Fig9)の赤い枠線で囲った+アイコンをクリックします。
Setup New Connection画面(Fig10)のConnection Name:に"localhost"と入力しました。この名前は分かりやすい名前であればなんでも良く、例えば"Local DB"でも良いです。 Test Connectionボタンをクリックします。
rootユーザーのパスワードを入力してOKボタンをクリックします。
認証できると成功画面(Fig12)が表示されます。
Setup New Connection画面に戻るのでOKボタンをクリックして入力内容を登録します。
MySQL Workbenchのトップ画面(Fig9)に戻りますが、トップ画面にいま登録したコネクションが追加されています。表示されている"Localhost"とはSetup New Connection画面(Fig10)で入力したConnection Nameで、"root"は接続ユーザー名です。
接続する
Fig13の登録したlocalhostコネクションをクリックするとrootユーザーのパスワード入力を求められるので入力します。 認証が成功するとFig14の画面が表示されます。 画面中央の"Query 1"というタブがSQL文を入力して実行する欄になります(タブは増やすことができます)。ここにテーブル作成やデータ挿入を行うSQL文を入力して実行します。その下の"Output"というビューにはこれまで実行したSQLの内容とその成否(成功したか失敗したか)が表示されます。 画面左側の"Navigator"は2つのタブに分かれていて、"Schemas"タブにはデータベース(MySQLではスキーマと同じ意味)の情報、"Administration"タブにはMySQLサーバーの情報が表示されます。
SQLを実行する
画面中央の"Query 1"タブでSQLを入力して実行してみます。実行するのは
- 1) データベース作成
- 2) ユーザー作成
- 3) ユーザーの権限設定
- 4) テーブル作成
- 5) データ登録
- 6) データ検索
- 7) データ更新
- 8) データ全件削除
です。
1) データベースを作成する
データベースの作成はCREATE DATABASE
文を使用します。IF NOT EXISTS
とはsample_dbというデータベースが無ければ実行するという意味になります。
CREATE DATABASE IF NOT EXISTS sample_db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ;
このSQL文を実行するにはFig15の赤い線で囲ったアイコンをクリックするか、Ctrl + Enterを押下します。 左端の数値は行番号で、その隣の●アイコンはSQLステートメントの先頭に表示されます。
OutputビューにSQLの実行結果が表示されます。左端のアイコンが実行結果で、緑色のアイコンは成功、赤色のアイコンは失敗を示します。
(補足)上記でSQLステートメントの先頭に●アイコンが付くと書きましたが、正確には正しいSQLステートメント(構文エラーが無い)に●アイコンが付き、正しくないSQLステートメント(構文エラー / Syntax Error)の場合は赤い×アイコンが付きます。Fig15Bは、SQL文が正しくないので×アイコンが付いています。
2) ユーザーを作成する
ユーザーの作成はCREATE USER
文を使用します。
CREATE USER IF NOT EXISTS 'sample_user'@'localhost' IDENTIFIED BY 'sample_pass' PASSWORD EXPIRE NEVER ;
この画面(Fig17)では●アイコンが2つ表示されているので、2つのSQLステートメントが入力されていることがわかります。 このように1つのタブに複数のSQLステートメントが入力されている状態で、任意のSQLステートメントを実行するにはSQLステートメントかその行末にカーソルを置いた状態で SQLの実行アイコンをクリックするか、Ctrl + Enterを押下します。 この例では2つ目のSQLステートメント(つまりCREATE USER文)を実行したいので、行番号10にカーソルを置いて実行アイコンをクリックします。
このようにOutputビューにSQLの実行結果が表示されます。
3) ユーザーの権限を設定する
2)で作成したsample_user
へ、1)で作成したsample_db
に対して権限を与えます。権限の付与はGRANT
文を使用します。
GRANT ALL ON sample_db.* TO 'sample_user'@'localhost';
OutputビューにSQLの実行結果が表示されます。
4) テーブルを作成する
テーブルの作成はCREATE TABLE
文を使用します。テーブル名の前にsample_db
とデータベース名を付けている点に注意してください。
CREATE TABLE IF NOT EXISTS sample_db.todo ( id BIGINT AUTO_INCREMENT, title VARCHAR(255) NOT NULL, description VARCHAR(1024) NULL, done BOOLEAN NOT NULL DEFAULT FALSE, create_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), update_at TIMESTAMP(3) NULL, PRIMARY KEY (id) ) CHARACTER SET = utf8mb4, COLLATE utf8mb4_general_ci ;
OutputビューにSQLの実行結果が表示されます。
データベースの状態を確認
テーブルまで作成したので、この時点でのデータベースの状態を確認します。 Navigator画面(Fig23)の赤い枠線で囲ったアイコンをクリックするとデータベースの状態が更新されます。
更新後のNavigator画面(Fig24)です。このように作成したデータベース(sample_db
)と、テーブル(todo
)が確認できます。
さらにデータベース名(sample_db
)を右クリックし、メニューからSchema Inspectorを選択すると(Fig25)、データベースに関する情報を確認できる画面(Fig26)が表示されます。同様にテーブル名(todo
)を右クリックし、メニューからTable Inspectorを選択すると、テーブルに関する情報が確認できます。
タブ(Tables、Columns、Indexes、Triggersなど)で、それぞれの情報を確認できます。
新しいコネクションを登録する
rootユーザーは管理者権限を持つユーザーなので特定の場合でしか使用しません。以降の操作は新しく作成したユーザー(sample_user
)で行うように新しいコネクションを登録します。
いま開いているコネクションは、メニューバーのFile
→ Close Connection Tab
をクリックして閉じます。
Setup New Connection画面(Fig27)を開いたら、Connection Name:に任意の名前を(この例では"localhost (sample_user)"としました)、Username:にsample_user
、Default Schema:にsample_db
と入力します。
次にPassword:の"Store in Vault ..."というボタンをクリックして、sample_user
のパスワードを入力します(Fig28)。
最後にOKボタンをクリックすると画面(Fig29)に新しいコネクションが登録されていると思います。このコネクションをクリックするとsample_user
でsample_db
へ接続します。
5) データを登録する
新しいコネクションで接続したら、テーブル(todo
)へデータを登録してみます。
INSERT INTO todo (title) VALUES ('買い物に行く') , ('部屋の掃除') , ('犬の散歩') , ('ブログを書く') , ('JavaScriptの勉強') ;
auto_commit
デフォルトではauto_commitは有効になっているので、insert文やdelete文を実行するとその都度コミットされます。 auto_commitの設定はFig30の赤い枠線で囲ったアイコンで切り替えられます。これは有効な状態で
クリックするとauto_commitは無効になりFig31のようになります。また左隣りの2つのアイコン(commitとrollback)が有効になり、変更をコミットする場合は明示的にcommitアイコンをクリックする必要があります。
このINSERT文を実行して、commitアイコンをクリックするとOutputはFig32のようになります。
6) データを検索する
以下のSELECT文で登録したデータを検索してみます。
select * from todo;
Queryタブの下に検索結果が表形式で表示されます。また、赤い枠線で囲ったエクスポートアイコンをクリックすると検索したデータをCSV形式のファイルに出力できます。
7) データを更新する
表形式のデータを直接編集して更新することもできます。 たとえば3行目の"犬の散歩"を"犬の散歩へ行く"に編集してみます。すると右下の"Apply"、"Revert"ボタンがクリックできるようになります。編集をコミットするには"Apply"ボタンをクリックします。 Applyボタンをクリックします。 Applyボタンをクリックします。Cancelをクリックするとコミットを中断します。 Finishボタンをクリックして完了します。
(補足)データの更新はQueryタブから直接UPDATE文を実行することでも可能です。
8) データを全件削除する
以下のDELETE文でtodo
テーブルのデータを全件削除しようとすると、エラーが発生して削除できません。
delete from todo;
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.
デフォルトの設定では、安全性を考慮して全件を削除することはできないようになっています。この設定を変えるにはメニューバーのEdit
→ Preferences...
→ SQL Editor
→ Other
のSafe Update
のチェックを外し、再接続します。
SQLを実行する (その2)
SQLを実行する方法は2つあります。いままではカーソルのあるSQLステートメントだけを実行してきましたが、複数のSQLステートメントをまとめて実行する方法もあります。 たとえば、以下のような個別のINSERT文をまとめて実行するには、
INSERT INTO todo (title) VALUES ('買い物に行く'); INSERT INTO todo (title) VALUES ('部屋の掃除'); INSERT INTO todo (title) VALUES ('犬の散歩'); INSERT INTO todo (title) VALUES ('ブログを書く'); INSERT INTO todo (title) VALUES ('JavaScriptの勉強');
Fig40の赤い枠線で囲ったアイコンをクリックします。
また、Fig41のように選択状態にすると、選択されたSQLステートメントだけが実行されます。この例では上3行のINSERT文だけが実行されます。