MySQL - MySQL Workbench

提供: MochiuWiki : SUSE, EC, PCB

2026年2月17日 (火) 21:25時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == MySQL Workbenchは、MySQLデータベースの管理、開発、設計を行うための統合ビジュアル開発環境である。<br> データベースアーキテクト、開発者、DBA (データベース管理者) 向けの包括的なツールで、ビジュアルなデータベース設計、SQLクエリ開発、サーバ管理、<br> パフォーマンスモニタリング、データベースマイグレーション等の機能を統合し…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要

MySQL Workbenchは、MySQLデータベースの管理、開発、設計を行うための統合ビジュアル開発環境である。
データベースアーキテクト、開発者、DBA (データベース管理者) 向けの包括的なツールで、ビジュアルなデータベース設計、SQLクエリ開発、サーバ管理、
パフォーマンスモニタリング、データベースマイグレーション等の機能を統合している。

MySQL Workbench 主要な機能領域
機能領域 主要機能
SQL開発機能 クエリエディタ、実行計画の可視化、スニペット管理
データモデリング機能 ER図設計、フォワード/リバースエンジニアリング
サーバ管理機能 ユーザ管理、サーバログ、ステータス監視
パフォーマンスモニタリング Performance Dashboard、Performance Schema
データインポート/エクスポート 各種形式でのデータ入出力
マイグレーション 他DBからMySQLへの移行支援


MySQL Workbench エディション比較
エディション 提供方式 主要機能
Community Edition オープンソースライセス SQL開発、データモデリング、サーバ管理、基本的なパフォーマンスモニタリング、Migration Wizard
Commercial Edition MySQL Enterprise契約に含まれる Community Editionの全機能に加えて、データベースドキュメント自動生成、Enterprise Monitor連携、
MySQL Enterprise Backupツール連携、高度なパフォーマンス分析機能、優先サポート


Windows、Linux (複数ディストリビューション)、MacOSに対応しており、各プラットフォームで一貫したユーザインターフェースを提供する。
動作要件は、4[GB]以上のメモリ (推奨: 8[GB]以上)、1[GB]以上のディスク空き容量である。

接続方法は、TCP/IP接続、SSH経由の接続、SSL接続、ローカルソケット接続に対応している。
SSH経由の接続では、公開鍵認証とパスワード認証の両方をサポートする。

SQL開発機能では、シンタックスハイライト、自動補完、複数タブ対応、コード整形、クエリ実行履歴、Visual Explain (実行計画の可視化) を提供する。
Visual Explainは、クエリの実行計画をグラフィカルなツリー構造で表示し、処理コスト、使用インデックス、スキャンタイプ、フィルタ条件を視覚的に確認できる。

データモデリング機能では、EER図の設計、フォワードエンジニアリング (EER図からCREATE TABLE文の自動生成)、リバースエンジニアリング (既存DBからEER図の自動生成)、
モデルとDBの同期 (差分検出とALTER TABLE文の自動生成) を提供する。


エディション比較

Community Edition

下表に、Community Editionの特徴を示す。

MySQL Workbench Community Edition 機能一覧
機能 説明
オープンソースライセンスで提供される無料版 GPL v2ライセンスで利用可能
SQL開発機能 クエリエディタ、Visual Explain、スニペット管理、結果パネル
データモデリング機能 ER図設計、フォワード/リバースエンジニアリング、モデル同期
サーバ管理機能 ユーザ管理、サーバステータス監視、サーバログ表示
パフォーマンスモニタリング Performance Dashboard、Performance Reports、Performance Schema
データインポート/エクスポート Data Import Wizard、Data Export Wizard、Result Set Export
Migration Wizard 他DBからMySQLへの移行支援


Community Editionのダウンロードは、MySQL公式サイトから無料で入手可能である。

Commercial Edition

下表に、Commercial Editionの特徴を示す。

MySQL Workbench Enterprise Edition 機能一覧
機能 説明
MySQL Enterpriseの契約に含まれる有料版 MySQL Enterprise Editionの購入が必要
Community Editionの全ての機能 全ての基本機能を含む
データベースドキュメント自動生成機能 データベース構造のドキュメントを自動生成
MySQL Enterprise Monitor連携 リアルタイム監視とアラート機能
MySQL Enterprise Backupツール連携 ホットバックアップとリストア機能
高度なパフォーマンス分析機能 より詳細なパフォーマンス分析レポート
優先サポート Oracle社の技術サポート


Commercial Editionは、ミッションクリティカルなシステムや大規模な本番環境での使用に適している。

下表に、主要機能の比較を示す。

エディション機能比較
機能 Community Edition Commercial Edition
SQL開発機能
データモデリング
サーバ管理
Performance Dashboard
Migration Wizard
自動ドキュメント生成 ×
Enterprise Monitor連携 ×
Enterprise Backup連携 ×
優先サポート ×
ライセンス GPL v2 (無料) 有料


多くの用途では、Community Editionで十分な機能を利用できる。


インストール

RHEL

sudo rpm -ivh mysql-workbench-community-<バージョン>.el7.x86_64.rpm
# または
sudo dnf install mysql-workbench-community


SUSE

sudo zypper install mysql-workbench-community


Windows

  1. MySQL公式Webサイトにアクセスする。
    https://dev.mysql.com/downloads/workbench/
  2. mysql-workbenchのMSIインストーラをダウンロードする。
    プラットフォームでWindowsを選択する。
  3. ダウンロードしたMSIファイルを実行する。
    mysql-workbench-community-VERSION-winx64.msi
  4. インストールウィザードに従って進む。
  5. インストールタイプを選択する。
    Typical (標準インストール) を推奨
  6. インストール完了後、スタートメニューからMySQL Workbenchを起動する。


Windows環境では、追加要件として Microsoft .NET Framework 4.5.2以上が必要である。
通常のWindows 10以降では、.NET Frameworkはプリインストールされている。

動作要件

下表に、MySQL Workbenchの動作要件を示す。

動作要件
項目 要件
OS Windows 10以上、Linux (複数ディストリビューション)
メモリ 4[GB]以上 (推奨: 8[GB]以上)
ディスク 1[GB]以上の空き容量
ディスプレイ 1280×1024以上の解像度
Windows追加要件 Microsoft .NET Framework 4.5.2以上


大規模なデータモデルを扱う場合や、パフォーマンス分析機能を使用する場合は、8[GB]以上のメモリを推奨する。

対応MySQLバージョンは、MySQL 5.6、5.7、8.0、8.4である。

また、最新版のMySQL Workbenchは、古いバージョンのMySQLサーバにも接続可能である。
ただし、一部の新機能 (例: Visual Explain、Performance Schema統計) は、対応するMySQLバージョンでのみ利用可能である。


接続設定

MySQL Workbenchでは、複数の接続方法をサポートしている。
接続設定は、接続マネージャに保存され、再利用可能である。

新規接続の作成

新規接続を作成する手順を以下に示す。

  1. ホーム画面 または Databaseメニューから[MySQL Connections]の[+]ボタンを押下する。
    または、[Database] - [Manage Connections]を選択する。
  2. [Setup New Connection]ダイアログが表示される。
  3. 接続設定を入力する。
  4. 主要な設定項目を入力する。
    Connection Name、Hostname、Port、Username、Password
  5. [Test Connection]ボタンを押下して、接続を確認する。
    設定が正しければ接続成功メッセージが表示される。
  6. [OK]ボタンを押下して、設定を保存する。
  7. 接続情報がホーム画面に表示される。


主要な設定項目を以下に示す。

接続設定項目
項目 説明 デフォルト値
Connection Name 接続の表示名 (任意)
Connection Method 接続方法 Standard (TCP/IP)
Hostname MySQLサーバのホスト名またはIPアドレス 127.0.0.1
Port MySQLサーバのポート番号 3306
Username 接続に使用するMySQLユーザ名 root
Password パスワード (Store in Vaultで保存可能) (任意)
Default Schema 接続時にデフォルトで選択するデータベース (任意)


接続方法には、以下の選択肢がある。

  • Standard (TCP/IP)
    標準的なTCP/IP接続
  • Local Socket/Pipe
    Unixソケットまたは名前付きパイプ (ローカル接続)
  • Standard TCP/IP over SSH
    SSHトンネル経由の接続


保存された接続は、ホーム画面のMySQL Connectionsセクションに表示される。

SSH経由の接続

SSH経由でMySQLサーバに接続する手順を以下に示す。
この方法は、直接MySQLポートにアクセスできない環境で有用である。

接続設定手順を以下に示す。

  1. [Setup New Connection]ダイアログで、[Connection Method]を[Standard TCP/IP over SSH]に変更する。
    プルダウンメニューから選択する。
  2. SSH設定を入力する。
    SSH Hostname、SSH Username、SSH Password または SSH Key File
  3. MySQL設定を入力する。
    MySQL Hostname (通常は 127.0.0.1)、MySQL Server Port、Username、Password
  4. [Test Connection]ボタンを押下して、接続を確認する。
  5. SSH接続とMySQL接続の両方が確認される。


下表に、SSH設定項目を示す。

SSH接続設定項目
項目 説明
SSH Hostname SSHサーバのホスト名またはIPアドレス ssh.example.com
SSH Username SSHログインユーザ名 ubuntu
SSH Password SSHパスワード (パスワード認証の場合) (任意)
SSH Key File 秘密鍵ファイルのパス (公開鍵認証の場合) ~/.ssh/id_rsa
MySQL Hostname MySQLサーバのホスト名 127.0.0.1
MySQL Server Port MySQLサーバのポート番号 3306


SSH秘密鍵を使用する場合の注意事項を以下に示す。

  • 秘密鍵はOpenSSH形式である必要がある。
  • PuTTY形式 (.ppk) の秘密鍵は、そのままでは使用できない。
  • PuTTYgenを使用して、PuTTY形式をOpenSSH形式に変換する必要がある。


PuTTY形式からOpenSSH形式へ変換する手順を以下に示す。

  1. PuTTYgenを起動する。
  2. .ppkファイルを読み込む。
    [Conversions] - [Import key]を選択する。
  3. [Conversions] - [Export OpenSSH key]を選択して、OpenSSH形式でエクスポートする。
  4. [SSH Key File]に保存した秘密鍵ファイルを指定する。
  5. パスフレーズが必要な場合は、[SSH Key Passphrase]を入力する。


Windows環境でSSH Key Fileのパスに日本語が含まれている場合、接続に失敗する可能性がある。
秘密鍵ファイルは、英数字のみのパスに配置することを推奨する。

SSL接続

SSL/TLS暗号化接続を使用する手順を以下に示す。
通信内容を暗号化することで、セキュリティを向上させることができる。

  • [Setup New Connection]ダイアログの[Advanced]タブを選択する。
  • [Use SSL]を[Require] または [Require and Verify CA]に設定する。
  • 必要に応じてSSL証明書ファイルを指定する。
    SSL CA File、SSL Client Certificate File、SSL Client Key File


下表に、SSL設定項目を示す。

SSL接続設定項目
項目 説明
Use SSL SSL接続の使用方法 (No、If available、Require、Require and Verify CA、Require and Verify Identity)
SSL CA File CA証明書ファイルのパス
SSL Client Certificate File クライアント証明書ファイルのパス
SSL Client Key File クライアント秘密鍵ファイルのパス


下表に、Use SSLの設定値の意味を示す。

Use SSL設定値一覧
設定値 説明
No SSL接続を使用しない。
If available サーバがSSLをサポートしている場合のみSSL接続を使用する。
Require SSL接続を必須とする。(証明書の検証は行わない)
Require and Verify CA SSL接続を必須とし、CA証明書で検証する。
Require and Verify Identity SSL接続を必須とし、CA証明書とホスト名を検証する。(最も安全)


MySQLサーバ側でもSSL設定が必要である。
詳細は、MySQL - SSL TLS接続のページを参照すること。


SQL開発機能

MySQL WorkbenchのSQL開発機能は、SQLクエリの作成、実行、デバッグを支援する。

クエリエディタ

クエリエディタの主要機能を以下に示す。

  • シンタックスハイライト
    SQL構文、キーワード、関数名、文字列、コメントを色分け表示
  • 自動補完
    テーブル名、列名、キーワード、関数名の入力候補を表示
    Ctrl+Space で候補一覧を表示
  • 複数タブ対応
    複数のSQLスクリプトを同時に編集可能
  • コード整形
    SQL文を自動的に整形 (インデント、改行)
    [Ctrl] + [B]キーで実行
  • クエリ実行履歴
    過去に実行したクエリを自動的に記録
    [Ctrl] + [Shift] + [H]キーで履歴パネルを表示


クエリの実行方法を以下に示す。

  1. カーソル位置のクエリを実行
    [Ctrl] + [Enter]キー または 稲妻アイコンを選択する。
  2. 選択したクエリを実行
    テキストを選択して、[Ctrl] + [Shift] + [Enter]キーを押下する。
  3. スクリプト全体を実行
    [Ctrl] + [Shift] + [Enter]キーを押下する。(選択なし)


クエリ実行の制御を以下に示す。

  1. クエリ実行の停止
    [Ctrl] + [Alt] + [Shift] + [Q]キー または 停止アイコンを選択する。
  2. トランザクション制御
    Auto-Commit ON / OFFの切り替え
    手動コミット / ロールバック


スニペット (再利用可能なSQL)

スニペット機能により、頻繁に使用するSQL文を登録して再利用できる。

スニペットの管理を以下に示す。

  1. [View] - [Snippets] - [Show Snippets]を選択して、SQL Snippet Panelを表示する。
  2. コンテキストメニューから[Add Snippet]を選択して、新規スニペットを作成する。
  3. スニペット名と内容を入力する。
    Title、SQL Template
  4. スニペットをダブルクリックして、スニペットを使用する。


スニペットの例を以下に示す。

 -- ユーザ一覧
 SELECT user, host FROM mysql.user;
 
 -- データベース一覧
 SHOW DATABASES;
 
 -- テーブル一覧
 SHOW TABLES;
 
 -- テーブル構造確認
 DESCRIBE table_name;
 
 -- 実行中のクエリ確認
 SHOW PROCESSLIST;


スニペットはプレースホルダーをサポートする。
プレースホルダーを使用することで、汎用的なSQL文を作成できる。

 SELECT * FROM <テーブル名> WHERE <カラム名> = <>;


スニペットを挿入後、プレースホルダー部分を実際の値に置き換える。

結果パネル

結果パネルの機能
機能 説明
テーブル形式表示 クエリ結果を表形式で表示する。
結果セット内の値を直接編集可能 セルをダブルクリックして編集する。Apply ボタンでデータベースに反映される。
フィルタリング カラムヘッダーの右クリックからフィルタ設定が可能である。
ソート機能 カラムヘッダーをクリックして昇順/降順ソートが可能である。
結果のエクスポート 右クリック → Export Recordset でエクスポートが可能である。


結果パネルの表示設定
設定項目 説明
NULL値の表示 NULLは灰色背景で表示される。
バイナリデータの表示 BLOBデータは、BLOB - XXX bytes と表示される。
大量データの制限 デフォルトで1000行まで表示される。
[Edit] - [Preferences] - [SQL Editor] -[Limit Rows] で変更可能である。


複数の結果セットが返される場合 (ストアドプロシージャ等)、タブで切り替えて表示される。

Visual Explain (実行計画の可視化)

Visual Explain機能により、クエリの実行計画をグラフィカルに確認できる。

Visual Explainの使用方法
ステップ 説明
クエリエディタでSELECT文を入力 UPDATE / DELETE文のVisual Explainも可能である。
[Query] - [Explain Current Statement]を実行
または、[Ctrl] + [Alt] + [X]キーで実行する。
-
実行計画がグラフィカルなツリー構造で表示される 各ノードが処理ステップを表す。


Visual Explainで表示されるビュー
ビュー名 説明
Visual Explain (グラフィカルビュー) ツリー構造で実行順序を可視化する。
Execution Plan (テーブルビュー) EXPLAIN結果をテーブル形式で表示する。


下表に、Visual Explainで表示される情報を示す。

Visual Explain表示情報
項目 説明
処理コスト 各処理ステップのコスト (相対値)
実行順序 クエリの実行順序 (上から下へ)
使用インデックス 各テーブルアクセスで使用されるインデックス
スキャンタイプ フルテーブルスキャン、インデックススキャン、レンジスキャン等
フィルタ条件 WHERE句の条件適用状況
処理行数 各ステップで処理される推定行数


スキャンタイプの種類
スキャンタイプ 説明
Full Table Scan テーブル全体をスキャンする。(インデックス未使用)
Index Scan インデックスを使用してスキャンする。
Range Scan インデックスの範囲スキャンを行う。
Unique Key Lookup 主キーまたはユニークインデックスによる1行検索を実行する。


Visual Explainの活用例を以下に示す。

  • 処理コストが高いステップを特定
    ボトルネックの発見
  • インデックスが使用されていないテーブルを特定
    インデックス追加の検討
  • 不要なフルテーブルスキャンを発見
    クエリ最適化の検討


詳細な実行計画の分析については、MySQL - パフォーマンスチューニングのページを参照すること。


データモデリング機能

MySQL Workbenchのデータモデリング機能により、ビジュアルにデータベース構造を設計できる。

ER図設計 (EER Diagram)

EER図 (Enhanced Entity-Relationship Diagram) を作成する手順を以下に示す。

  1. [File] - [New Model]を選択する。
    または、ホーム画面の[Create new EER Model]を選択する。
  2. Model概要画面が表示される。
    Model名、説明、デフォルト文字セット等を設定する。
  3. [Add Diagram]ボタンで新規ダイアグラムを作成する。
    キャンバスが表示される。
  4. 左側のツールパレットからテーブルアイコンを選択する。
    キャンバス上で選択して、テーブルを配置する。
  5. テーブルをダブルクリックして編集する。
    テーブル名、列定義、インデックス、外部キー等を設定する。


下表に、テーブルの編集項目を示す。

テーブル編集項目一覧
タブ名 編集項目
Columnsタブ 列名、データ型、NULL許可、デフォルト値、AUTO_INCREMENT
Indexesタブ プライマリキー、ユニークインデックス、通常インデックス
Foreign Keysタブ 外部キー制約の定義
Triggersタブ トリガーの定義
Optionsタブ ストレージエンジン、文字セット、コメント


リレーションシップの作成を以下に示す。

  1. ツールパレットから関係線アイコンを選択する。
    1:n1:1n:m
  2. 親テーブルを選択する。
    外部キーの参照先
  3. 子テーブルを選択する。
    外部キーを持つテーブル
  4. 自動的に外部キー制約が作成される。
    参照整合性が定義される。


カーディナリティの種類を以下に示す。

テーブル間の関係タイプ
関係タイプ 説明
1:n (1対多) 最も一般的な関係である。
例: 顧客と注文
1:1 (1対1) 一意な関係である。
例: ユーザと詳細プロフィール
n:m (多対多) 中間テーブルを自動生成する。


フォワードエンジニアリング

フォワードエンジニアリングにより、EER図からCREATE TABLE文を自動生成できる。

実行手順を以下に示す。

  1. [File] - [Export] - [Forward Engineer SQL CREATE Script]を選択する。
  2. エクスポートオプションを選択する。
    DROP TABLE文の生成、CREATE DATABASE文の生成等
  3. SQLスクリプトの保存先を指定する。
    .sqlファイルとして保存する。
  4. 生成されたSQLスクリプトを確認する。
    CREATE TABLE、CREATE INDEX、ALTER TABLE等


生成されるSQL文の例を以下に示す。

 CREATE TABLE IF NOT EXISTS `mydb`.`users` (
   `id` INT NOT NULL AUTO_INCREMENT,
   `username` VARCHAR(45) NOT NULL,
   `email` VARCHAR(100) NULL,
   `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
   PRIMARY KEY (`id`),
   UNIQUE INDEX `username_UNIQUE` (`username` ASC))
 ENGINE = InnoDB;
 
 CREATE TABLE IF NOT EXISTS `mydb`.`orders` (
   `id` INT NOT NULL AUTO_INCREMENT,
   `user_id` INT NOT NULL,
   `order_date` DATETIME NULL,
   `total` DECIMAL(10,2) NULL,
   PRIMARY KEY (`id`),
   INDEX `fk_orders_users_idx` (`user_id` ASC),
   CONSTRAINT `fk_orders_users`
     FOREIGN KEY (`user_id`)
     REFERENCES `mydb`.`users` (`id`)
     ON DELETE NO ACTION
     ON UPDATE NO ACTION)
 ENGINE = InnoDB;


データベースに直接適用することも可能である。
[Database] - [Forward Engineer]を選択することにより、接続先データベースに直接CREATE TABLE文を実行できる。

リバースエンジニアリング

リバースエンジニアリングにより、既存のデータベースからEER図を自動生成できる。

実行手順を以下に示す。

  1. [Database] - [Reverse Engineer]を選択する。
    接続情報を入力する。
  2. データベース接続を確認する。
    Test Connectionで確認する。
  3. スキーマ選択
    リバースエンジニアリング対象のデータベースを選択する。
  4. オブジェクト選択
    テーブル、ビュー、ストアドプロシージャ、トリガー等を選択する。
  5. [Execute]ボタンを押下して、リバースエンジニアリング実行する。
    EER図が自動生成される。


下表に、取得される情報を示す。

リバースエンジニアリングで取得されるスキーマオブジェクト
オブジェクト種別 説明
テーブル定義 列名、データ型、制約、デフォルト値を取得する。
インデックス定義 プライマリキー、ユニークインデックス、通常インデックスを取得する。
外部キー制約 参照整合性、ON DELETE/UPDATE動作を取得する。
ビュー定義 VIEW のCREATE文を取得する。
トリガー定義 トリガーのCREATE文を取得する。
ストアドプロシージャ / 関数 ルーチンのCREATE文を取得する。


生成されたEER図は、編集・保存・エクスポートが可能である。

モデルの同期

モデル同期機能により、EER図とデータベースの差分を検出して、ALTER TABLE文を自動生成できる。

実行手順を以下に示す。

  1. EER図を編集する。
    テーブル追加、列追加、インデックス変更等
  2. [Database] - [Synchronize Model]を選択する。
    同期対象の接続を選択する。
  3. 差分検出する。
    モデルとデータベースの差分を自動検出
  4. 変更内容を確認する。
    CREATE TABLE、ALTER TABLE、DROP TABLE等のSQL文を確認
  5. 実行 または 保存する。
    データベースに直接適用 または SQL文をファイルに保存


差分検出の例を以下に示す。

  • 新しいテーブルの追加
    CREATE TABLE文が生成される
  • 既存テーブルへの列追加
    ALTER TABLE ADD COLUMN文が生成される
  • インデックスの追加
    CREATE INDEX文が生成される
  • 外部キーの変更
    ALTER TABLE ADD/DROP FOREIGN KEY文が生成される


生成されるALTER TABLE文の例を以下に示す。

 ALTER TABLE `mydb`.`users`
 ADD COLUMN `phone` VARCHAR(20) NULL AFTER `email`;
 
 ALTER TABLE `mydb`.`orders`
 ADD INDEX `idx_order_date` (`order_date` ASC);
 
 ALTER TABLE `mydb`.`orders`
 DROP FOREIGN KEY `fk_orders_users`,
 ADD CONSTRAINT `fk_orders_users`
   FOREIGN KEY (`user_id`)
   REFERENCES `mydb`.`users` (`id`)
   ON DELETE CASCADE
   ON UPDATE CASCADE;


モデル同期は、スキーマ変更の管理を大幅に簡素化する。


サーバ管理機能

MySQL Workbenchのサーバ管理機能により、MySQLサーバの状態監視と設定変更を実行できる。

サーバステータス

Server Statusタブで、MySQLサーバの動作状態を確認できる。

Server Status Information 表示情報一覧
カテゴリ 情報項目 説明
Server Status サーバの起動時刻、稼働時間、バージョン サーバの基本情報を表示する。
Client Connections アクティブな接続数、最大接続数、拒否された接続数 クライアント接続の状況を表示する。
Traffic 送受信バイト数、送受信パケット数 ネットワークトラフィックを表示する。
Query Statistics 実行されたクエリ数
SELECT / INSERT / UPDATE / DELETEの内訳
クエリ実行統計を表示する。
InnoDB Status InnoDBバッファプールの使用状況、読み書き回数 InnoDBの詳細ステータスを表示する。
Key Buffer MyISAMキーバッファの使用状況 MyISAMキーバッファの状況を表示する。


サーバステータスの確認手順を以下に示す。

  1. 接続を開く
    ホーム画面から接続をダブルクリックする。
  2. [Server] - [Server Status]を選択する。
    または、[Navigator] - [Management] - [Server Status]を選択する。
  3. リアルタイムでステータスが更新される。
    自動更新間隔は設定可能


下表に、主要なステータス変数を示す。

主要ステータス変数
変数名 説明
Threads_connected 現在接続中のスレッド数
Threads_running 実行中のスレッド数
Uptime サーバの稼働時間 (秒)
Questions 実行されたクエリの総数
Slow_queries スロークエリの数
Bytes_sent 送信バイト数
Bytes_received 受信バイト数
Innodb_buffer_pool_read_requests InnoDBバッファプールからの読み取り要求数


ステータス変数の詳細は、SHOW STATUS 文でも確認できる。

 SHOW GLOBAL STATUS;
 SHOW GLOBAL STATUS LIKE 'Threads%';
 SHOW GLOBAL STATUS LIKE 'Innodb%';


ユーザとアクセス権限管理

[Server] - [Users and Privileges]から、MySQLユーザの管理を実行できる。

下表に、ユーザ管理の主要機能を示す。

ユーザ管理機能一覧
機能 説明
ユーザ作成 [Add Account]ボタンでユーザを作成する。
パスワード変更 ユーザを選択してパスワードを変更する。
グローバル権限設定 [Administrative Roles]タブで権限を設定する。
スキーマレベル権限設定 [Schema Privileges]タブでデータベース単位の権限を設定する。
テーブルレベル権限設定 より細かい粒度での権限制御が可能である。
ロール管理 MySQL 8.0以降でロールの作成と割り当てが可能である。


ユーザ作成の手順を以下に示す。

  1. [Users and Privileges]画面にて、[Add Account]ボタンを押下する。
    新規ユーザ作成フォームが表示される。
  2. [Login Name]、[Limit to Hosts Matching]、[Password]を入力する。
    例: user1、%、password123
  3. [Administrative Roles]タブで権限を選択する。
    DBA、DBManager、BackupAdmin等
  4. [Schema Privileges]タブでスキーマ権限を設定する。
    特定データベースへのアクセス権限
  5. [Apply]ボタンを押下して、設定を保存する。
    GRANT文が自動的に実行される。


下表に、権限の種類を示す。

主要権限
権限 説明
SELECT データの読み取り
INSERT データの挿入
UPDATE データの更新
DELETE データの削除
CREATE テーブル/データベースの作成
DROP テーブル/データベースの削除
ALTER テーブル構造の変更
INDEX インデックスの作成/削除
GRANT OPTION 他ユーザへの権限付与
SUPER 管理コマンドの実行


Administrative Rolesのプリセットを以下に示す。

  • DBA
    全ての管理権限
  • DBManager
    データベース管理権限 (SUPER以外)
  • DBDesigner
    スキーマ設計権限 (CREATE、ALTER、DROP)
  • BackupAdmin
    バックアップ関連権限
  • ReplicationAdmin
    レプリケーション管理権限


ユーザ削除は、ユーザを選択して[Delete]ボタンを押下する。

サーバログ

[Server Logs]タブで、MySQLサーバのログファイルを確認できる。

確認可能なログを以下に示す。

サーバログの種類
ログ種別 説明
Error Log サーバのエラー、警告、起動/停止メッセージ
General Query Log 全てのクライアント接続とクエリ
Slow Query Log 実行時間が閾値を超えたクエリ
Binary Log データベース変更イベント (レプリケーション用)


ログ表示の手順を以下に示す。

  1. [Server] - [Server Logs]を選択する。
    [Navigator] - [Management] - [Server Logs]を選択する。
  2. [ログタイプ]を選択する。
    Error Log、Slow Query Log等
  3. ログ内容が表示される。
    テキスト形式で表示
  4. フィルタ機能で絞り込みを行うこともできる。
    日付範囲、エラーレベル等で絞り込み


Slow Query Logの分析を以下に示す。

  • 実行時間が長いクエリを特定
    パフォーマンス改善の対象を発見
  • Query Time、Lock Time、Rows Examined を確認
    処理時間とスキャン行数
  • クエリ最適化の検討
    インデックス追加、クエリ書き換え


ログファイルの場所は、設定により異なる。

 SHOW VARIABLES LIKE 'log_error';
 SHOW VARIABLES LIKE 'slow_query_log_file';
 SHOW VARIABLES LIKE 'general_log_file';


詳細なログ設定については、MySQL - 設定ファイルのページを参照すること。


パフォーマンスモニタリング

MySQL Workbenchのパフォーマンスモニタリング機能により、サーバのパフォーマンスをリアルタイムで分析できる。

Performance Dashboard

Performance Dashboardは、MySQLサーバのパフォーマンスをリアルタイムで可視化する。

アクセス方法を以下に示す。

  1. 接続を開く
    ホーム画面から接続をダブルクリックする。
  2. [Server] - [Performance Dashboard]を選択する。
    または、[Navigator] - [Performance] - [Dashboard]を選択する。


Performance Dashboard メトリクスとグラフ表示機能
カテゴリ 項目 説明
Server Metrics Network Status 送受信データ量のグラフ表示
MySQL Status アクティブ接続数、クエリキャッシュヒット率
InnoDB Metrics InnoDBバッファプール使用率、読み書き回数
Network Metrics Client Connections 接続数の推移
Traffic ネットワークトラフィック
InnoDB Metrics Buffer Pool Efficiency キャッシュヒット率
Disk Reads / Writes ディスクI/O回数
Log File Usage REDOログの使用状況
グラフ表示特徴 リアルタイム更新 デフォルトで5秒間隔で更新される。
時系列グラフ 過去のメトリクスを時系列で表示する。
拡大 / 縮小 グラフをクリックして詳細表示が可能である。


Performance Reports

Performance Reportsは、Performance Schemaのデータを分析してレポートを生成する。

下表に、利用可能なレポートを示す。

Performance Reports 利用可能なレポート一覧
レポート名 説明
Database I/Oホットスポット、ファイルI/O統計
High Cost SQL Statements 実行時間が長いクエリ、頻繁に実行されるクエリ
Wait Statistics 待機イベントの統計
InnoDB Status InnoDBの詳細ステータス


レポート表示の手順を以下に示す。

  1. [Server] - [Performance Reports]を選択する。
    または、[Navigator] - [Performance] - [Performance Reports]を選択する。
  2. レポートタイプを選択する。
    High Cost SQL Statements等
  3. レポート内容が表示される。
    テーブル形式で詳細データを表示


下表に、High Cost SQL Statementsレポートの情報を示す。

High Cost SQL Statements表示項目
項目 説明
Query 実行されたSQL文
Exec Count 実行回数
Total Latency 総実行時間
Avg Latency 平均実行時間
Lock Latency ロック待機時間
Rows Examined スキャンした行数
Rows Sent 返された行数


レポートの活用例を以下に示す。

  • 高コストクエリの特定
    Total Latencyが大きいクエリを発見
  • 頻繁に実行されるクエリの最適化
    Exec Countが多いクエリのキャッシュ検討
  • 不要なフルテーブルスキャンの発見
    Rows Examinedが極端に多いクエリを特定


Performance Schema

Performance Schemaは、MySQL 5.6以降で導入されたパフォーマンス診断機能である。
MySQL Workbenchは、Performance Schemaから自動で情報を収集する。

Performance Schemaの有効化を以下に示す。

 -- Performance Schema有効化確認
 SHOW VARIABLES LIKE 'performance_schema';
 
 -- 有効化 (my.cnfファイルで設定)


 [mysqld]
 performance_schema = ON


Performance Schemaは、MySQL 5.6.6以降でデフォルトで有効化されている。
Performance Schemaのオーバーヘッドは、通常1〜3[%]程度である。

Performance Schemaから取得される情報
情報種別 説明
イベント統計 クエリ実行、ファイルI/O、ネットワークI/O
待機イベント ロック待機、I/O待機
メモリ使用統計 メモリ割り当て状況
スレッド統計 各スレッドのリソース使用状況


Performance Schemaの主要テーブル一覧
テーブル名 説明
events_statements_summary_by_digest SQL文のダイジェスト統計
file_summary_by_instance ファイルI/O統計
table_io_waits_summary_by_table テーブルI/O統計
events_waits_summary_global_by_event_name 待機イベント統計


SYSスキーマを使用することで、Performance Schemaのデータを簡単に参照できる。

 -- 高コストクエリの確認
 SELECT * FROM sys.statement_analysis ORDER BY total_latency DESC LIMIT 10;
 
 -- テーブルI/O統計
 SELECT * FROM sys.schema_table_statistics ORDER BY total_latency DESC LIMIT 10;
 
 -- ファイルI/O統計
 SELECT * FROM sys.io_global_by_file_by_bytes ORDER BY total DESC LIMIT 10;


詳細なパフォーマンスチューニングについては、MySQL - パフォーマンスチューニングのページを参照すること。


データのインポート / エクスポート

データインポート

[Server] - [Data Import]を選択して、データインポートを実行できる。

インポート方法一覧
インポート方法 説明
Import from Dump Project Folder mysqldumpで作成されたフォルダ構造からインポートする。
Import from Self-Contained File 単一のSQLファイルからインポートする。


インポート手順を以下に示す。

  1. [Server] - [Data Import]を選択する。
    または、[Navigator] - [Management] - [Data Import/Restore]を選択する。
  2. インポート方法を選択する。
    [Import from Self-Contained File]等
  3. インポートファイルを指定する。
    .sqlファイル または フォルダを選択
  4. インポート先のスキーマを選択する。
    既存スキーマ または 新規作成
  5. 各オプションを設定する。
    [Default Target Schema、Dump Structure and Data]等
  6. [Start Import]ボタンを押下して実行する。
    インポート進捗が表示される。


下表に、インポートオプションを示す。

インポートオプション
オプション 説明
Dump Structure and Data テーブル構造とデータの両方をインポート
Dump Data Only データのみをインポート
Dump Structure Only テーブル構造のみをインポート


Table Data Import Wizard

Table Data Import Wizardにより、CSV、JSON等のファイルから特定テーブルにデータをインポートできる。

使用手順を以下に示す。

  1. Schemasパネルで対象テーブルを右クリックする。
    対象スキーマを展開してテーブルを表示
  2. [Table Data Import Wizard]を選択する。
    ウィザードが起動
  3. インポートファイルを指定する。
    CSVファイル または JSONファイルを選択
  4. ファイル形式を設定する。
    区切り文字 (カンマ、タブ、セミコロン等)
    文字エンコーディング (UTF-8、Shift_JIS等)
  5. カラムマッピングを設定する。
    CSVカラムとテーブルカラムの対応を確認
  6. [Next]ボタンを押下する。
    インポート設定確認画面
  7. [Next]ボタンを押下して、インポートを実行する。
    インポート結果が表示される。


下表に、CSVファイル形式の設定項目を示す。

CSV形式設定項目
項目 説明 デフォルト値
Field Separator フィールドの区切り文字 カンマ (,)
Line Separator 行の区切り文字 LF (\n)
Enclose Strings 文字列を囲む文字 ダブルクォート (")
Encoding 文字エンコーディング UTF-8
First Row Contains Column Names 1行目がカラム名か ON


データエクスポート

[Server] - [Data Export]を選択して、データエクスポートを実行できる。

エクスポート方法一覧
エクスポート方法 説明
Export to Self-Contained File 全てのデータを1つのSQLファイルにエクスポートする。
Export to Dump Project Folder スキーマごとにフォルダ分割してエクスポートする。


Data Export Wizard

エクスポート手順を以下に示す。

  1. [Server] - [Data Export]を選択する。
    または、[Navigator] - [Management] - [Data Export/Restore]を選択する。
  2. エクスポート対象のスキーマを選択する。
    左側のリストからチェック
  3. エクスポート対象のテーブルを選択する。
    右側のリストからチェック
  4. エクスポート方法を選択する。
    [Export to Self-Contained File] または [Export to Dump Project Folder]
  5. エクスポートオプションを設定する。
    [Dump Stored Procedures and Functions]、[Dump Events、Dump Triggers]等
  6. [Start Export]ボタンを押下して、実行する。
    エクスポート進捗が表示される。


下表に、エクスポートオプションを示す。

エクスポートオプション
オプション 説明
Dump Structure and Data テーブル構造とデータの両方をエクスポート
Dump Data Only データのみをエクスポート
Dump Structure Only テーブル構造のみをエクスポート
Single Transaction 単一トランザクション内でエクスポート (整合性保証)
Include Create Schema CREATE DATABASE文を含める
Dump Stored Procedures and Functions ストアドプロシージャと関数を含める
Dump Events イベントを含める
Dump Triggers トリガーを含める


Single Transactionオプションを有効にすることで、エクスポート中のデータ変更を防ぎ、整合性を保証する。
大規模データベースでは、Export to Dump Project Folderを使用することで、複数ファイルに分割され、管理が容易になる。

Result Set Export

クエリ結果パネルから、結果セットを直接エクスポートできる。

エクスポート手順を以下に示す。

  1. クエリを実行する。
    SELECT文等を実行して結果を取得する。
  2. 結果パネルを右クリックする。
    [Export Recordset to an External File]を選択する。
  3. エクスポート形式を選択する。
    CSV、JSON、XML、HTML、SQL INSERT文
  4. ファイル名と保存先を指定する。
    拡張子は形式に応じて自動設定
  5. エクスポートを実行する。
    結果セットがファイルに出力される。


エクスポート形式一覧
形式 説明
CSV カンマ区切り形式 (Excel等で読み込み可能)
JSON JSON形式 (APIやWeb開発で使用)
XML XML形式 (データ交換フォーマット)
HTML HTMLテーブル形式 (ブラウザで表示可能)
SQL INSERT INSERT文形式 (他DBへのデータ移行)


Result Set Exportは、少量データの抽出に適している。
大量データのエクスポートには、Data Export Wizardを使用することを推奨する。


マイグレーション (他DBからの移行)

MySQL Workbenchは、他のデータベースシステムからMySQLへの移行を支援する。

Database Migration Wizard

Database Migration Wizardは、ビジュアルウィザード形式でデータベース移行を実行する。

下表に、対応ソースDBを示す。

マイグレーション対応データベース一覧
データベース名 対応バージョン
Microsoft SQL Server SQL Server 2005以降
Microsoft Access Access 2000以降 (.mdb、.accdb)
PostgreSQL PostgreSQL 8.0以降
Sybase ASE Sybase Adaptive Server Enterprise
Sybase SQL Anywhere Sybase SQL Anywhere 9以降
SQLite SQLite 3.x
その他ODBC接続可能なデータベース ODBCドライバ経由で接続


マイグレーション手順を以下に示す。

  1. [Database] - [Migration Wizard]を選択する。
    ウィザードが起動
  2. ソースDBの接続設定を行う。
    Database System、Connection Method、Driver等を設定
  3. ソースDBに接続する。
    [Test Connection]ボタンを押下する。
  4. 移行対象のスキーマ / テーブルを選択する。
    移行したいオブジェクトを選択
  5. ターゲットMySQLの接続設定を行う。
    移行先のMySQLサーバ情報を入力
  6. オブジェクトを変換する。
    スキーマ、テーブル、カラムの変換ルールを確認
  7. 手動調整する。
    必要に応じて変換ルールを修正
  8. CREATE TABLE文を実行する。
    MySQLサーバにテーブルを作成
  9. データを転送する。
    ソースDBからMySQLへデータをコピー
  10. マイグレーション完了
    結果レポートを表示


スキーマ変換

Database Migration Wizardは、ソースDBのスキーマをMySQL互換形式に自動変換する。

下表に、自動変換される項目を示す。

Migration Wizardで自動変換される項目一覧
変換項目 説明
テーブル構造 テーブル名、カラム定義が変換される。
データ型変換 ソースDBのデータ型をMySQLのデータ型にマッピングされる。
プライマリキー 主キー制約が変換される。
ユニークインデックス UNIQUE制約が変換される。
外部キー制約 FOREIGN KEY制約が変換される。
デフォルト値 DEFAULT制約が変換される。
NOT NULL制約 NULL許可設定が変換される。


下表に、データ型変換の例を示す。

データ型変換例 (SQL Server → MySQL)
SQL Server型 MySQL型
INT INT
BIGINT BIGINT
VARCHAR(n) VARCHAR(n)
NVARCHAR(n) VARCHAR(n) CHARACTER SET utf8mb4
DATETIME DATETIME
BIT TINYINT(1)
MONEY DECIMAL(19,4)
UNIQUEIDENTIFIER CHAR(36)


下表に、手動調整が必要な項目を示す。

Migration Wizardで手動調整が必要な項目一覧
項目 説明
複雑なストアドプロシージャ T-SQL (SQL Server)、PL/pgSQL (PostgreSQL) 等の構文はMySQLと異なるため手動で書き換えが必要である。
トリガー トリガー構文の違いにより手動調整が必要である。
ユーザ定義型 MySQLには対応する型が存在しない場合がある。
システム固有関数 GETDATE() (SQL Server) -> NOW() (MySQL) 等の置換が必要である。


変換操作は、SQLスクリプトとして確認・編集可能である。
変換後のCREATE TABLE文は、ウィザード内で編集できる。

データ転送と検証

CREATE TABLE実行後、データのETL (Extract、Transform、Load) 処理を実行する。

データ転送の流れを以下に示す。

  1. ソースDBからデータを抽出する。
    SELECT文でデータを取得
  2. データを変換する。
    必要に応じてデータ型変換、文字エンコーディング変換
  3. MySQLへデータロードする。
    INSERT文 または LOAD DATA INFILE でデータ挿入
  4. 整合性を検証する。
    行数の確認、サンプルデータの比較


下表に、転送オプションを示す。

転送オプション
オプション 説明
バルクインサート 複数行を1度に挿入して高速化
トランザクション制御 コミット間隔の設定
エラーハンドリング エラー発生時の処理 (スキップ、停止)


マイグレーション後の検証項目を以下に示す。

  • 行数の一致
    ソースDBとMySQLのレコード数を比較
  • データサンプルの確認
    主要テーブルのデータを目視確認
  • 外部キー整合性
    参照整合性が保たれているか確認
  • インデックスの確認
    必要なインデックスが作成されているか確認


※制限事項

  • ストアドプロシージャ・トリガーの完全自動変換は不可
    手動での書き換えが必要
  • トランザクション分離レベルの違いに注意する。
    READ COMMITTEDがデフォルトのDBとREPEATABLE READがデフォルトのMySQLで動作が異なる可能性
  • 大規模データベースでは時間が掛かる。
    数[GB]以上のデータ転送には数時間〜数日かかる場合がある


マイグレーション後は、アプリケーションのテストを十分に実施することを推奨する。


設定・カスタマイズ

Preferences (環境設定)

Preferencesダイアログで、MySQL Workbenchの動作設定を変更できる。

Preferencesへのアクセス方法を以下に示す。

  • Windows / Linux
    [Edit] - [Preferences]
  • MacOS
    [MySQL Workbench] - [Preferences]


Preferences - Appearance (外観設定)
設定項目 説明
Color Theme Light、Dark、Systemから選択可能である。
Font エディタフォント、フォントサイズを設定する。
Language インターフェース言語 (英語、日本語等) を選択する。


Preferences - SQL Editor (エディタ設定)
設定カテゴリ 設定項目 説明
Query Editor タブサイズ、自動インデント、行番号表示 クエリエディタの表示および動作を設定する。
SQL Execution Safe Updates UPDATE/DELETE時のWHERE句必須化を設定する。
SQL Execution SELECT結果行数制限 結果表示の最大行数を設定する。
Auto-completion 自動補完の動作設定 自動補完機能の動作を設定する。
Code Formatting SQL文の自動整形ルール SQL文の整形方法を設定する。


Preferences - Model (モデリング設定)
設定項目 説明
Defaults - ストレージエンジン デフォルトストレージエンジンを設定する。
Defaults - 文字セット デフォルト文字セットを設定する。
Diagram ダイアグラム表示設定、グリッド表示を設定する。


Preferences - Modeling (モデリング動作設定)
設定項目 説明
MySQL MySQLバージョン別の動作設定を行う。
Forward Engineering フォワードエンジニアリング時のオプションを設定する。


SQL Editorのカスタマイズ

SQL Editorの詳細設定を以下に示す。

MySQL Workbench エディタ設定詳細
設定カテゴリ メニューパス 説明
シンタックスハイライト色設定 [Preferences] - [Fonts & Colors] - [SQL Editor] キーワード、文字列、コメント、関数名等の色を個別設定する。
自動補完動作設定 [Preferences] - [SQL Editor] - [Auto-completion] Use uppercase keywords on completion、Enable auto-start of code completion等を設定する。
Query Editor設定 [Preferences] - [SQL Editor] - [Query Editor] Show line numbersで行番号表示を設定する。
Tab Size、Insert spaces for tabs でインデント設定を行う。


Safe Updatesモードを以下に示す。
Safe Updatesモードは、誤った全行更新 / 削除を防ぐため、デフォルトで有効化されている。

 -- Safe Updates有効時、以下のクエリはエラー
 UPDATE users SET status = 'active';
 -- Error: You are using safe update mode
 
 -- WHERE句またはLIMITが必要
 UPDATE users SET status = 'active' WHERE id = 1;


主要キーボードショートカット
操作 Windows / Linux MacOS
クエリ実行 [Ctrl] + [Enter]キー [Cmd] + [Enter]キー クエリ実行 (選択範囲) [Ctrl] + [Shift] + [Enter]キー [Cmd] + [Shift] + [Enter]キー
コード整形 [Ctrl] + [B]キー [Cmd] + [B]キー
コメント化 [Ctrl] + [/]キー [Cmd] + [/]キー
検索 [Ctrl] + [F]キー [Cmd] + [F]キー
置換 [Ctrl] + [H]キー [Cmd] + [H]キー
保存 [Ctrl] + [S]キー [Cmd] + [S]キー
自動補完表示 [Ctrl] + [Space]キー [Ctrl] + [Space]キー


設定ファイルの場所

MySQL Workbenchの設定ファイルは、プラットフォームごとに異なる場所に保存される。

  • Windows
    • 設定ディレクトリ
      C:\Users\<ユーザ名>\AppData\Roaming\MySQL\Workbench
    • 主要ファイル
      workbench.conf (メイン設定)
      connections.xml (接続設定)
      main_menu.xml (メニュー設定)

  • Linux
    • 設定ディレクトリ
      ~/.config/MySQL/Workbench
    • システム設定
      /usr/share/mysql-workbench/data

  • MacOS
    • 設定ディレクトリ
      ~/Library/Application Support/MySQL/Workbench


下表に、設定ファイルの種類を示す。

主要設定ファイル
ファイル名 説明
workbench.conf メイン設定 (外観、エディタ設定等)
connections.xml 保存された接続情報
main_menu.xml メニュー構成
wb_state.xml ウィンドウ状態 (サイズ、位置)
sql_history.xml SQL実行履歴


設定をリセットする場合は、設定ディレクトリを削除してMySQL Workbenchを再起動する。


トラブルシューティング

接続エラー

Cannot connect to MySQL server
  • 原因
    MySQLサーバが起動していない、ホスト名/ポート番号が間違っている、認証情報が間違っている
  • 確認事項
    MySQLサーバの起動状態確認、ホスト名・ポート番号の確認、ユーザ名・パスワードの確認
  • 対処法
    MySQLサーバ起動、正しい接続情報の入力


# MySQLサーバ起動確認 (Linux)
sudo systemctl status mysql

# MySQLサーバ起動 (Linux)
sudo systemctl start mysql

# MySQLサーバ起動確認 (Windows)
net start MySQL80


Host is not allowed to connect to this MySQL server
  • 原因
    MySQLサーバのbind-address設定、ユーザのhost制限
  • 確認事項
    my.cnfの bind-address設定、ユーザのhost指定
  • 対処法
    bind-addressを0.0.0.0に変更、ユーザのhost指定を変更


 -- ユーザのhost確認
 SELECT user, host FROM mysql.user;
 
 -- host指定変更 (例: ローカルのみ → 任意のホスト)
 RENAME USER 'user1'@'localhost' TO 'user1'@'%';
 
 -- または新規ユーザ作成
 CREATE USER 'user1'@'%' IDENTIFIED BY 'password';
 GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%';
 FLUSH PRIVILEGES;


SSH接続エラー
  • 原因
    SSH設定が間違っている。
    秘密鍵のフォーマットが間違っている。
    known_hostsパスに全角文字が含まれている。
  • 確認事項
    SSHホスト名・ユーザ名・秘密鍵パスの確認、秘密鍵フォーマット確認 (OpenSSH形式)
  • 対処法
    正しいSSH設定の入力、秘密鍵をOpenSSH形式に変換、設定ファイルパスを英数字のみに変更する。


# SSH接続確認
ssh user@ssh.example.com

# 秘密鍵のパーミッション確認 (Linux/MacOS)
chmod 600 ~/.ssh/id_rsa


SSL接続エラー
  • 原因
    SSL証明書が存在しない。
    証明書の有効期限切れ
    証明書パスが間違っている。
  • 確認事項
    証明書ファイルの存在確認
    証明書の有効期限チェック
  • 対処法
    正しい証明書ファイルの指定
    証明書の更新


 -- MySQLサーバのSSL設定確認
 SHOW VARIABLES LIKE '%ssl%';


クエリ実行エラー

Syntax error
  • 原因
    SQL文法が間違っている
  • 確認事項
    SQL文法の確認
    キーワードのスペルミス確認
  • 対処法
    SQL文法の修正、Visual Explainで確認


Access denied for user
  • 原因
    ユーザ権限が不足している
  • 確認事項
    ユーザ権限の確認
  • 対処法
    必要な権限を付与


 -- ユーザ権限確認
 SHOW GRANTS FOR 'user1'@'%';
 
 -- SELECT権限付与
 GRANT SELECT ON mydb.* TO 'user1'@'%';
 
 -- 全権限付与
 GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'%';
 
 FLUSH PRIVILEGES;


You are using safe update mode
  • 原因
    Safe UpdatesモードでWHERE句なしのUPDATE / DELETE実行
  • 対処法
    WHERE句またはLIMITを追加、Safe Updatesモード無効化


 -- Safe Updatesモード無効化
 SET SQL_SAFE_UPDATES = 0;
 
 -- クエリ実行
 UPDATE users SET status = 'active';
 
 -- Safe Updatesモード再有効化
 SET SQL_SAFE_UPDATES = 1;


パフォーマンス問題

MySQL Workbenchのメモリ使用量が多い
  • 原因
    大容量の結果セットを表示している。
    多数のタブを開いている。
  • 対処法
    結果セットをLIMITで制限する。
    不要なタブを閉じる。
    自動保存ファイルを削除する。
    MySQL Workbenchを再起動する。


 -- 結果セット制限
 SELECT * FROM large_table LIMIT 1000;


大量データのインポート / エクスポートが遅い
  • 原因
    ネットワーク遅延
    max_allowed_packet サイズ制限
  • 対処法
    max_allowed_packetサイズ増加
    直接接続の検討
    LOAD DATA INFILE の使用検討


 -- max_allowed_packet確認
 SHOW VARIABLES LIKE 'max_allowed_packet';
 
 -- max_allowed_packet変更 (セッション単位)
 SET GLOBAL max_allowed_packet = 1073741824;


Visual Explainが表示されない
  • 原因
    Performance Schemaが無効
    MySQLバージョンが古い
  • 確認事項
    Performance Schema有効化確認
    MySQLバージョン確認
  • 対処法
    Performance Schemaを有効化
    MySQLバージョンを更新


 -- Performance Schema確認
 SHOW VARIABLES LIKE 'performance_schema';


よくあるエラーと対処法

SQLファイルインポートエラー
  • 原因
    ファイルパスに日本語が含まれている。
    ファイルエンコーディングが間違っている。
  • 対処法
    ファイルを英数字のみのパスに配置する。
    ファイルエンコーディングをUTF-8に変換する。


Windowsユーザ名に日本語が含まれている場合
  • 原因
    設定ファイルパスに日本語が含まれるため動作不安定
  • 対処法
    英数字のみのWindowsユーザ名に変更する。
    設定ファイルパスを変更


設定が保存されない
  • 原因
    設定ファイルへの書き込み権限がない
  • 対処法
    管理者権限でMySQL Workbenchを起動


設定をリセットする
  • 対処法
    workbench.confを削除して、MySQL Workbenchを再起動する。


# Windows
del C:\Users\[ユーザ名]\AppData\Roaming\MySQL\Workbench\workbench.conf

# Linux
rm ~/.config/MySQL/Workbench/workbench.conf

# MacOS
rm ~/Library/Application\ Support/MySQL/Workbench/workbench.conf


設定ファイルを削除後、MySQL Workbenchを起動すると、デフォルト設定で起動される。