MySQL Workbench によって、MySQLの設定をある程度、変更する事が可能だ。もっとも、事前にGrant権限を持つユーザーが事前に必要であるなど、幾つかの前提条件が存在するようだ。UNIX / Linux に慣れ親しんでいるユーザーであればコマンドラインから実行した方がはるかに簡単であるような気さえする。そこで、どうしても GUI で操作したい人向けでのみ紹介しようと思う。

※ このページは、MySQL Workbench Community では、殆ど意味が無い情報です。

 

 

 

サーバーインスタンスを作成する

※ MySQL Workbench Community では、サーバーインスタンスは存在しない様です。

 

まずは、『New Server Instance』をクリック

 

サーバーインスタンスの追加

 

すると、次のような画面が出てくる。

 

サーバーインスタンス作成 ホスト選択

 

英語が読めない人のために説明すると、要約すれば以下のような条件が存在すると書いてある。

  • 対象のマシンで、MySQLサーバーが動作中でなければならない。
  • 対象のマシンで、SSHデーモンが起動していなければならない。
  • Windowsクライアント → Windwos サーバー に接続する場合は、マネージメントツールが必要

ってことらしい。

※ MySQLサーバーが別のマシンで動作している場合は、ポートが開放されている必要がある。(FirewallD を GUI で使用する)それ以外にも、他のマシンからもアクセス出来るGrant権限保有ユーザーが必要である。
※ 伝統的な理由から、通常であればSSHデーモンは起動しているし、ポートも開放されているハズだ。
※ Windows サーバーの事を説明する気はないので、そこは完全にスルーする。Microsoft の製品でも買って、サポートでも受けてください。

 

MySQL Workbench Community 6.2 の場合

サーバーインスタンスは消えているのだが、それに近い機能は残っている。

 

まず、root のコネクションで接続し、インスタンスのレンチボタンをクリックすれば良い。

 

root コネクションの作成は、ココを参考にして下さい。

 

MySQL Workbench Community 6.2 サーバーインスタンス

サーバーの状態を確認するだけなら、この設定は必要ない。

 

「Server Status」で確認出来るからだ。その他の設定は、起動・終了・「my.cnf」の編集なので。通常は必要ないだろう。それでも必要な場合は、sudo や ssh の設定及びポートの開放などが必要になる。

 

MySQL Workbench Community 6.2 サーバーステータス

 

勿論、MariaDB でも問題無く利用可能である。

 

ラジオボタンの説明

  • 『localhost』 … MySQL サーバーと MySQL Workbench が同一マシンである場合は、コレを選択する。
  • 『Remote Host』 … MySQL サーバーと MySQL Workbench が別マシンである場合は、コレを選択する。IP アドレスかホスト名を入力しておこう。
  • 『Take Parameters from Existing Database Connection』 … MySQL Workbench でのコネクション(接続アカウント)がある場合は、その設定を利用する。(あくまでも、Workbench上でのコネクションであり、MySQLアカウントの事ではない)

 

『Next』ボタンを押し、次の画面に移行する。

 

MySQL Workbench サーバーインスタンスの作成

 

※ 『Take Parameters from Existing Database Connection』を選択した場合は、この画面は出ずに次の画面がでる。

 

①接続名 … インスタンスの接続名として、一覧で表示される名前。好きなモノを設定しよう。
②接続方法 … 同一マシンである場合は『Local Sicket/Pipe』を選び、別マシンである場合は『Standard(TCP/IP)』を選ぼう。『Standard TCP/IP over SSH』は、SELinux によるブロッキングが発生し(ポート3306の使用)、うまくいかない様だ(Ver5.2.34)。

 

※ SELinux に新たなロールを設定すれば接続は可能なハズだが、その場合、新たなパスが発生することになるので、その分だけセキュリティとして脆弱になるのでお勧めできない。(関係無い話だが、脆弱は「ぜいじゃく」と読む。「きじゃく」じゃないゾ)

 

『Next』ボタンをおして次の画面が出れば接続完了だ。

 

MySQL Workbench サーバーインスタンス追加テスト

 

※ 『successfully』と出ている事を確認しよう。

 

さらに『Next』ボタンを押す。

 

MySQL Workbench サーバーインスタンス追加 OS選択

 

MySQLサーバーがインストールされているOSを選択する。

 

『Operating System』 … 要するにOSのことだ。MySQLサーバーがインストールされているOSを選択しよう。もし見つからなければ、関連するシステムを選択しろと書いてある。(その他のUNIX→FreeBSDとかだろう)

 

『MySQL Installation Type』 … 分からなければ、対応する『Vender Package』を選択しよう。(英語でそう書いてある)パッケージャー経由の場合は 『Vender Package』、それ以外の場合は『MySQL Package』と言うことだと思う。(Vender の意味がOS Venderの場合だが…)

 

ここで『Next』ボタンを押した場合、次の画面が出ればOKだ。

 

MySQL Workbench サーバーインスタンス追加 ホストチェック

 

ここで『Next』ボタンを押せば、

 

MySQL Workbench サーバーインスタンス追加 設定確認同意

 

『Continue』を押せばインスタンスの完了画面が出て終了するのだが、確認の意味も込めて『I’d like to ~』を押して、サーバー情報の確認が行う。

 

MySQL Workbench サーバーインスタンス追加 設定確認

 

ここで、パスなどの設定情報に問題があれば、『Change Parameters』をチェックすれば良いワケだ。

 

※ sudo コマンドを使用するが『Yes』になっているが、Fedoraではデフォルトの状態では使用できない。(設定が必要)ただし、MySQLサーバーはサービスダイアログ(OSのメニュー 『システム』>『管理』>『サービス』)から開始/終了できるので、問題無いのではないだろうか?

 

『Change Parameters』をチェックして『Next』ボタンを押すと次のような画面になる。

 

MySQL Workbench サーバーインスタンス追加 MySQL設定

 

設定ファイル名やサービス名(MySQLサーバー) の変更や確認はこの画面で行える。(『Check Path』や『Check Name』ボタンを押して、グリーンの文字が表示されればOK)

 

『Next』ボタンを押すとコマンド関連の編集が行えるようになる。

 

MySQL Workbench サーバーインスタンス追加 MySQLコマンド設定

 

英語で『デフォルトが最適なハズだから良く分からないなら触らないでよねっ!』とツンデレ風味で書いてある。(味気ない文章は脳内変換で風味着けするのは基本である。)

 

そして、一番のチェックボックスは、起動/終了/チェックコマンドを実行する場合、sudo コマンドを使用するかどうかと言うことだろう。独自の方法でMySQLサーバーをコントロールしたい場合などは変更の必要があるのだろうが、無理にイジル必要性も感じないので、『Next』ボタンを押して次に進もう。(Windowsサーバーを意識しての事だろうが、非常に回りくどい英語で書かれている。)

 

MySQL Workbench サーバーインスタンス追加 インスタンス名入力

 

最後にインスタンス名(MySQL Workbench のトップウインドウに表示されるメンテナンス用接続名)を追加すれば終了だ。

 

 

インスタンスを変更する

インスタンスを変更する場合は、トップ画面の『Manage Server Instances』をクリックする。

 

MySQL Workbench サーバーインスタンス変更画面へ

 

『connection』タブ

 

MySQL Workbench サーバーインスタンス変更画面

 

①コネクション方法 … MySQLサーバーへの接続方法
②コネクション方法の編集 … MySQLサーバーへの接続に使用するアカウントやパスワードなどを変更できる。ボタンが2つあるが、設定時に使用したのとほぼ同じダイアログが表示される。(なぜボタンが2つあるのだろう?)
③接続チェック … 『Connect Check…』で確認できる。
④リモート接続を行わない … MySQLサーバーとMySQL Workbench が同一サーバーで直接続の場合に、選択状態になる。
⑤SSH経由の接続 … SSH経由の場合に選択状態
⑥ホスト名とポート番号 … MySQLサーバーが存在するマシンのアドレスとSSHポート番号。(通常は空欄)
⑦SSHアカウント … SSHで接続するユーザー名
⑧SSHパスワード … SSHのパスワード
⑨SSHキーを使用する … 接続先のサーバー偽装を防ぐために使用するSSL証明書。インターネット経由での接続でも無い限りは必要無いハズだ。
⑩SSHキーが格納されたファイルのパス … SSHキーファイルが保存されているパスを使用する。

『System Profile』 タブ

 

MySQL Workbench サーバーインスタンス システム設定

 

このタブは、今まで説明したものが組み合わさっただけなので、説明の必要は殆ど無いハズだ。

 

『Start MySQL』/『Stop MySQL』 … RedHat系(Fedoraを含む)であれば、『/sbin/service mysqld start』/『/sbin/service mysqld stop』を指定した方が良い場合もある。(Fedora15 以降ではサービスの起動方法が変更されているので、デフォルトの方法ではマズイように思う。当然。mysqld が systemd に完全移行されている場合は、起動しないだろう。 )

 

※ Fedora15 以降ではサービスの設定方法が変更されています。詳しくはココを参照して下さい。

 

『Sudo command』… sudo コマンドの実行方法。『Enter Password Here』にはユーザーアカウントのパスワードに変更しなければならない。(rootアカウントのパスワードではない事に注意)ただし、sudoコマンドの設定で使用禁止コマンドが含まれている場合などは、うまく動作しないと思われる。勿論、SSH経由で接続する場合は、SSHのパスワードと同じになるハズだ。

 

 

予備知識

UNIX/Linux系では一般的に、サーバーとはマシンを指し示す言葉として使用され、MySQL本体などはデーモンと呼ばれ、デーモンから提供される処理などをサービスと呼ぶ。(この文章では英語でServerと書かれている箇所が多かった事と、デーモンの意味が分からない人のためにサーバーと表記してある。)

 

そのため、サービスを提供する本体などは、『~d』の名前を持つことが多い(mysqldやsshd、httpd など)。

 

さらに RedHat 系では、サービス(デーモン)の開始/終了には『service』コマンドを使用する。(Ubuntuなどには存在しない様だ。

 

service コマンド:『service デーモン名 アクション』。アクションには、『start』(開始)、『stop』(終了)、『reload』(設定ファイルの読み込み)などがある。

 

※ サービスはOSの管轄領域であるため、開始や終了には root 権限が必要である。
※ アクションはデーモンによって異なる。手っ取り早くアクションを知りたい場合は、『srvice デーモン名 help』と入力してみると良いだろう。
※ 厳密な意味でのデーモンとは、総元締(init)に里子に出されたプロセスで制御端末を持たないモノを言う。しかし実質的には何らかのサービス(監視サービスもある)を提供するモノなので、ここではサービス提供者としている。(実際、何の事だか分からない人が多いでしょ?)

 

『/etc/init.d/mysqld stop』などは、UNIX / Linux 系では互換性が高い方法ではあるが、RedHat 系などでは将来的にデーモンの起動方法が変わる可能性が高く、『service』コマンドを使用した方が無難である。Ubuntu などの Debian 系で追随するかは微妙なところではあるが、商用 Linux サーバーとしては RedHat 系を使用するのが一般的であり、覚えておいても損は無いハズだ。

 

また、Fedora15 から採用された systemd は、このページをご覧下さい。

 

sudo コマンドは、指定されたユーザーに root 権限でコマンドを実行させるためのモノであり、使用できるコマンドやサーバーなどを細かく指定できる。また、root のパスワードを教えずに root 権限を使用させる目的もあるため、sudo コマンドで要求されるパスワードは本人確認用のユーザーパスワードである。

 

sudo コマンドの本来での意味を考えれば、何らかの使用制限が指定されている事も当然ありえるため、MySQL Workbench のようなサービスの開始/終了方法は微妙であると言わざるを得ない。SSH 経由での接続方法が SELinux の制限対象に入っている事からも言っても、管理者用のツールとしては不適切であるように思える。(そもそも管理者がコマンドラインを使いこなせない時点で問題なのだろう。)おそらくは Windows との互換性を考えての事なのだろうが、一歩間違えればセキュリティ上の問題を発生させるようなツールでもあるので、管理者用のツールとしてはお勧めしない。

 

ただし、MySQL Workbench は EER 図が作成出来るなど、開発者用として見れば有用なツールである。

 

『MySQL Workbench は開発者用』と割り切ってみてはどうだろうか?