MySQLにはサーバー(サービス)を起動したり、データを操作したりするための便利なプログラムが用意されています。この各種のプログラムを使いこなせないと、データベースエンジニアとして十分な活躍ができません。逆にいうとMySQLに備え付けのプログラムを縦横に活用することで、エンジニアとしては仕事の幅が広がるともいえます。 ここでは基本的な起動プログラムから、データベース操作に欠かせないクライアントプログラム、そして運用に必要なユーティリティプログラムを紹介していきます。
server起動プログラム
MySQLでは各種OSで利用が可能です。一般的にウェブサービスで使う場合は、Linux系OS上でサーバーとして起動されています。Windows系サーバーでも使われる場合もありますが、その場合は業務系のバックオフィスとして利用されているケースが多く見られます。また、Macの場合、現在のOSはBSD系UNIXがコアとして開発されているため、Linuxと近い操作性になっています。
いずれのOSでも基本的にサーバー起動はコマンドで実行されます。例えばLinuxでMySQLをサーバーとして実行するコマンドは以下のものです。
同じLinuxでもOSの種類やバージョンによって起動コマンドは変わります。 なお、サーバーまたはサービスとして登録されていれば、OSの起動と同時にMySQLも起動します。Windowsの場合は基本的にはOSの起動でサービスが開始し、OSの終了と同時にサービスも終了します。そのため通常、明示的に開始・終了を実行することはありませんが、NET START MySQL コマンドを利用し、手動で起動することも可能です。MacはLinuxと同様にターミナルから起動できますし、自動起動に設定することも可能です。
クライアントプログラム
MySQLにはその機能を最大限に生かすためのツールとして、各種クライアントプログラムが用意されています。一般的にはMySQLをインストールする際に、本体と一緒にパッケージとしてインストールされます。
最も日常的に使われるクライアントプログラムとして、MySQL Command Line Clientがあります。いわゆるmysqlコマンドのことです。
$ mysql -u root(もしくはユーザー名)
このコマンドによってMySQLと接続が開始され、対話式に操作することができます。オプションを付けることでさらに便利な使い方が可能になります。
次に利用範囲が広いクライアントプログラムとしては、mysqladminとmysqldumpがあります。 mysqldumpはバックアップとして使用頻度の高い、非常に重要なプログラムです。データベースエンジニアにとって、サービスの運用に欠かせないコマンドのひとつですから、初心者はよく学習し、しっかりと身につけることが求められます。
mysqladminはスキーマの作成や削除、ヘルスチェック、シャットダウンなど、MySQLの管理に使うクライアントプログラムです。これも日常よく使うコマンドです。その他、mysqlimport、mysqlslap、mysqlcheckなど、メンテナンスや管理に使える便利なクライアントプログラムが用意されています。
ユーティリティプログラム
広く括るとmysqldumpなどもユーティリティプログラムといえますが、ここではMySQL8の公式ドキュメントに掲載されているプログラムを列記します。
ibd2sdi、innochecksum、myisam_ftdump、myisamchk、myisamlog、myisampack、mysql_config_editor、mysqlbinlog、mysqldumpslow
以上が現在公式ドキュメントに記載されているユーティリティプログラムです。
個別の機能についての詳細は省きますが、いくつかを簡単に説明します。 myisam_ftdumpは全文インデックス情報を表示し、さらにインデックスをダンプします。innochecksum では、InnoDBテーブルのチェックサムを出力し、破損したページを検証できます。このように公式ドキュメントでは、データベースを安全に運用するための便利な機能が提供されているのです。
なお、MySQL8からibd2sdiのように追加されたプログラムや、また逆に消えたプログラムもあります。その点では最新のバージョンについて改めて情報を確認すると良いでしょう。
まとめ
MySQLは5.7から8.0バージョンになり、速度が倍になるなど、大きくその機能が向上しました。そのため、バージョンアップを検討しているデータベースエンジニアも多いかと思います。 しかし、バージョンが変わることでプログラム周辺も変更があり、迂闊に操作を行うと手痛い目に合うかもしれません。例えばテーブルロックの動作は5.7と8.0では違いがあり、mysqldumpのオプション次第でデータの整合性に問題がでる場合があります。 バージョンによる特性をよく加味して運用することが求められます。
ソフトエイジェンシー関連製品URL
https://www.softagency.co.jp/products/mysql