はじめに
MySQL Workbench(以下 Workbench) とは MySQL 公式の統合 GUI ツールであり、データベースの管理/設計/開発/移行など様々なことを実現することができます。今回は、この Workbench の使いどころについて、特に Workbench ならではの機能を紹介させていただきます。
機能紹介
Workbench から MySQL Server にログインすると、以下のようなタブが表示されます。
このうち、MANAGEMENT
タブでは、以下のような情報を確認することができます。
- MySQL Server の基本情報
- クライアント接続一覧
- ユーザー情報
- MySQL のパラメータ変数およびステータス変数
今回は、使い方がわかりにくかったり、そもそもデフォルトでは使えない以下のタブについて確認していきます。なお、Commercial 版ではこの他に ENTERPRISE
タブから MySQL Enterprise 製品(MySQL Enterprise Audit、MySQL Enterprise Firewall、MySQL Enterprise Backup)に関する項目も確認できますが、ここでは割愛しています。
INSTANCE
PERFORMANCE
環境
ここでは、以下の環境を使用して説明をおこなっていきます。なお、どちらも Community 版を使用しています。
- MySQL Workbench 8.0.20 (Windows 10)
- MySQL Server 8.0.20 (CentOS 7.7)
サーバー情報の確認(INSTANCE
)
INSTANCE
タブでは、MySQL Server が実行されているサーバー環境にリモートアクセスすることで、さらに一歩踏み込んだ情報を確認することが可能になります。
この機能を使用するためにはまず、INSTANCE
タブの右側のアイコンをクリックするか、Database > Manage Connections...
を選択します。
デフォルトでは Do not use remote management
となっているので、環境に応じてリモートログインの方法を選択していきます。
今回は CentOS で RPM パッケージを使用してインストールをおこなっていたため、以下のような設定をおこないました。
Remote Management
タブSSH login based management
を選択Hostname
(接続先サーバー) : 192.168.17.145Port
(リモートログイン用ポート) : 22Name
(OS ユーザー名) : root
System Profile
タブSystem type
(OS) : LinuxInstallation type
(インストール方法) : CentOS 7 (MySQL Pakage)
※これ以降は自動で入力されます
設定が完了したら、Close
を押してから INSTANCE
タブ内の項目を選択して、各項目が表示されれば正常にリモートアクセスできています。
なお、接続が上手くいかない場合は、ホームタブから新規接続の作成を選択して、左下の Configure Server Management
を開くことで、接続作成のウィザードが立ち上がるので、各ステップ毎に設定が正しいかを確認することができます。
リモートアクセスができたら、各サーバー情報について確認していきます。
Startup / Shutdown
MySQL Server の起動/停止をおこなうことができます。実際に実行しているのはリモートアクセス設定(System Profile
)の MySQL Management
内のコマンドであり、今回は systemctl コマンドが実行されているようです。
Server logs
MySQL Server が出力している各種ログが出力されます。デフォルト設定ではエラーログだけですが、スロークエリログや一般クエリログを有効にすると、以下のように各ログファイルのタブが選択できるようになり、ファイルの全文を確認することができます。
Options File
MySQL の設定ファイルを変更することができます。このとき変更されるのは、System Profile
の Configuration File
に設定したファイルであり、今回は /etc/my.cnf が対象となっているようです。
なお、変更した内容は右下の Apply
を選択することで実際の設定ファイルに反映させることが可能です。
ただし、変更されるのは設定ファイルのみで、実際の値には反映されないので注意する必要があります。
パフォーマンス関連情報(PERFORMANCE
)
PERFORMANCE
タブからは、MySQL の各種内部ステータスを確認することができます。
Dashborad
MySQL Enterprise Monitor などに比べると情報量は少ないですが、以下の内容について直近 150 秒程度の情報を確認することができます。
Network Status
- ネットワーク送受信量
- クライアント接続数(Connections 増分)
MySQL Status
- テーブルキャッシュヒット率
- SQL 実行数(Queries 増分)
- 各ステートメント(SELECT/INSERT/UPDATE/DELETE)実行数
InnoDB Status
- バッファプール使用率
- ディスク I/O 量(Redo ログ、ダブルライトバッファ)
Performance Reports
パフォーマンススキーマの情報を確認することができます。
なお、MySQL 5.7 では memory 関連のインストゥルメントがデフォルトで無効になっているので、Memory Usage
の情報を確認したい場合は、以下のようにあらかじめインストゥルメントを有効にしておく必要があります。なお、MySQL8.0 ではデフォルトで有効になっており、MySQL 5.6 以前にはそもそも memory インストゥルメントが存在していません。
1 2 3 |
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME LIKE 'memory/%'; |
永続化する場合は設定ファイルに performance-schema-instrument='memory/%=ON'
を記載してください。なお、INSTANCE
タブの Option File
から、Performance > Performance Schema > performance-schema-instrument
に memory/%=ON
を入力して Apply
を選択することでも反映できます。
有効になっている場合は、以下のようにパフォーマンススキーマの情報(正確には sys スキーマのビューの内容)を確認することができます。
また、これらの情報は左下の Export を選択することでファイルに出力することも可能です。
Performance Schema Setup
ここでは、パフォーマンススキーマで取得する情報について簡単に設定することができます。
Easy Setup
タブでは大まかな目安のみが設定できますが、右上の Show Advanced
を選択することで、詳細な設定項目を確認できます。
パフォーマンススキーマの概要を説明している Introduction
から始まり、各インストゥルメントやタイマーの設定など、パフォーマンススキーマを扱う際に躓きがちなポイントが項目毎にわかり易くまとまっています。
なお、MySQL 8.0 ではデフォルト値で概ね情報が取得できるような設定になっているので、そのまま変更せずに使用すれば良いかと思います。
まとめ
ここまで、MySQL Workbench で見ることができる情報について確認してきました。
Workbench は導入も簡単で直感的に使えてしまう反面、デフォルトで使いにくい機能や項目はスルーしがちですが、使いこなせば様々な情報を得ることができます。MySQL をより深く理解するための足掛かりとして、是非利用してみてはいかがでしょうか。