Pythonで作られた便利なコマンドラインツール MySQL Utilities
「MySQL Utilities」とは?
MySQL UtilitiesはPython言語により作成された便利なコマンドラインツール群です。MySQL Workbenchに付属する形で公開され、現在はMySQL Workbenchから独立する形で配布されています。そしてMySQLサーバーへの接続にはConnector/Pythonが利用されています。
LinuxをはじめとするPythonの環境が整っているプラットフォームではPythonスクリプトがそのまま提供され、Windowsのように標準的なPython環境を持たないプラットフォームではPythonのスクリプトをネイティブの実行形式(*.exe)に変換された形で配布されています。
MySQL Utilities自体はコマンドラインのツール群ですので、Workbenchの実行に必要な、比較的新しめのGUI環境は必要ありません。そのため、Workbenchがサポートするよりも、より多くのプラットフォームで単独利用が可能です。
MySQL Utilitiesコマンドラインツール一覧
MySQL Utilitiesは原稿執筆時点(2014-01)で、以下の20ユーティリティ+実行環境(mysqluc: MySQL Utilities Client)の21ユーティリティから構成されています。
ユーティリティ | 記述 |
---|---|
mysqlauditadmin | 監査ログメンテナンスユーティリティ |
mysqlauditgrep | 監査ログ検索ユーティリティ |
mysqldbcompare | データベース比較 |
mysqldbcopy | サーバー間でのデータベースのコピー |
mysqldbexport | データベースからメタデータとデータのエキスポート |
mysqldbimport | データベースからメタデータとデータのインポート |
mysqldiff | データベースオブジェクト定義の比較 |
mysqldiskusage | データベースのディスク仕様量の表示 |
mysqlfailover | レプリケーションの自動モニタリングとフェイルオーバー |
mysqlfrm | .frmファイルからテーブル定義を表示 |
mysqlindexcheck | 重複、もしくは冗長なインデックスをチェック |
mysqlmetagrep | メタデータの検索 |
mysqlprocgrep | プロセス情報の検索 |
mysqlreplicate | マスターとのレプリケーション確立 |
mysqlrpladmin | レプリケーション管理ユーティリティ |
mysqlrplcheck | レプリケーションのチェック |
mysqlrplshow | マスターに接続されているスレーブの表示 |
mysqlserverclone | 動作中のMySQLを元に別インスタンスを開始 |
mysqlserverinfo | MySQLサーバーの情報を表示 |
mysqluserclone | 既存のMySQLユーザから新しいユーザを作成 |
MySQL Utilitiesならではの注意点
MySQL Utilitiesは従来のコマンドラインツール群とは違い、以下のような記述で接続先を指定します。
これは、従来のコマンドラインツール群が主に1つのMySQLサーバーを対象として動作するものなのに対して、MySQL Utilitiesは2つ以上のMySQLサーバーを対象として動作するものが多いため、このような記法になっています。
[MySQL Utilitiesの記法]
--server=ユーザ名:パスワード@ホスト名:ポート番号
[MySQL コマンドラインツール群の記法]
--user=ユーザ名 --password=パスワード --host=ホスト名 --port=ポート番号
なおWindows環境ではローカルホストとしてlocalhostと127.0.0.1のどちらを指定しても同じですが、LinuxやUNIXではホスト名に対してlocalhostを指定するとUNIXドメインソケットを利用して接続を行います。そのため、localhostを指定する場合にはポート番号の代わりにソケット名を指定してください(例: --server=root:root@localhost:/var/lib/mysql/mysql.sock)。
コマンドがうまく動作しない場合、多くのコマンドでは-vオプションが使えますので、-vを追加のうえ再実行して動作の詳細を表示してください。またWindows環境のようにmysqlucから実行している場合には、show last errorにてエラーメッセージを調べることも可能です。
MySQL Utilitiesのインストール
MySQL UtilitiesはWorkbenchホーム画面右上(図1)のMySQL Utilitiesからクリック(もしくはメニューのTools-Start Shell for MySQL Utilitiesから)して起動します。
まだインストールされていなければインストールのガイダンスがエラーメッセージにて表示されるので、それに従ってインストールしてください。Windowsの場合はMSI形式のインストーラになります。
またLinuxではプラットフォーム別、もしくは一般的なLinuxに利用できるGeneric Linuxのパッケージを利用することになります。RHEL/Oracle Linuxにインストールする場合はrpmパッケージを以下のコマンドでインストールします。
shell> yum install mysql-utilities-1.3.6-1.el6.noarch.rpm
通常はデフォルトで入っているPythonで事足りるため、Connector/Pythonパッケージの追加インストールだけで利用できるようになります。
実際に利用してみよう
MySQLサーバーの情報を表示するmysqlserverinfoを実際に利用してみましょう。指定するオプションは--server=での接続先の指定と、表示を垂直に表示する--format=verticalの二つです(MySQLコマンドラインツールの\Gに相当します)。
mysqluc> mysqlserverinfo --server=root:root@localhost:3306 --format=vertical # Source on localhost: ... connected. ************************* 1. row ************************* server: localhost:3306 config_file: binary_log: binary_log_pos: relay_log: relay_log_pos: version: 5.6.14-log datadir: C:\ProgramData\MySQL\MySQL Server 5.6\data\ basedir: C:\Program Files\MySQL\MySQL Server 5.6\ plugin_dir: C:\Program Files\MySQL\MySQL Server 5.6\lib\plugin\ general_log: ON general_log_file: MEIJI-ACER-PC.log general_log_file_size: log_error: .\MEIJI-ACER-PC.err log_error_file_size: slow_query_log: OFF slow_query_log_file: slow_query_log_file_size: 1 row.
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- MySQL Clusterのバックアップ/リストアの具体例
- MySQL Clusterのインストールと基本的な設定および操作
- MySQL Clusterにおけるレプリケーション環境構築例
- MySQL、PHPの設定とデータベース作成
- WordPress コース 2nd Stage を攻略しよう(Linux 仮想マシン編)
- MySQL/OracleとLifeKeeperによるHAクラスタ化
- Windows AzureにPerlのアプリケーションをインストールする(クエスト9)
- MySQLのリアルタイムモニタリングに「innotop」
- MySQL Clusterの主要な設定、設定変更時の注意点
- PHPのSQLインジェクションを実体験