クライアントプログラムに共通の実行オプション
特に利用頻度の多いMySQLのコマンドラインツールは以下の通りです。いずれのクライアントプログラムでも、実行時のオプションに--helpまたは-?をつけるとヘルプが表示されます。
コマンド名 | 用途 |
mysql | MySQLサーバに対してSQLを実行 |
mysqladmin | MySQLサーバの管理コマンドを実行 |
mysqlimport | データをテーブルにインポート |
mysqldump | テーブルの内容をバックアップ |
MySQLのクライアントプログラムは、基本的にMySQLサーバに接続して各種の処理を行うため、接続に必要な情報に関するコマンドラインオプションは共通になっています。短縮型は大文字小文字も判別されますので注意してください。このほか「MySQL事始」第2回で説明した文字コードに関する設定も重要なオプションです。
オプション名 | 短縮型 | デフォルト値 | 概要 |
--host | -h | localhost | MySQLサーバが稼働するマシンのホスト名またはIPアドレス |
--protocol | なし | TCP | 通信プロトコル TCP, SOCKET, PIPE, MEMORYのいずれかを指定 |
--port | -P | 3306 | MySQLサーバが利用するTCP/IPのポート番号 |
--compress | -c | なし | 通信プロトコルの圧縮 |
これらのオプションはコマンドの引数として設定できるほか、「MySQL事始」第2回の文字コードの設定のように、設定ファイル(デフォルトではmy.cnfまたはmy.ini)に記述しておくこともできます。
[client]
# すべてのクライアントプログラムに適用される設定
# ここでは文字コードにutf8mb4(4バイトUTF8)を指定
default-character-set=utf8mb4
[mysql]
# mysqlコマンドのオプションを設定
# エラー発生時にビープ音を鳴らさない
no-beep
[mysqldump]
# mysqldumpコマンドのオプションを設定
# サーバとの通信を圧縮
compress
MySQL 5.6から加わった重要なオプションがlogin-pathです。従来のMySQLサーバへの接続方法では--userまたは-uオプションでユーザ名、--passwordまたは-pオプションでパスワードを指定していました。この方法では毎回パスワードを入力する必要があります。設定ファイルにユーザ名とパスワードをあらかじめ設定しておくことも可能ですが、パスワードは平文で格納されていたためセキュリティ上の観点からは望ましくありません。
そこでMySQL 5.6には、mysql_config_editorコマンドが新たに用意され、あらかじめパスワードを含む接続情報を暗号化されたファイルに格納しておき、接続時にはlogin-pathで指定した名称の接続情報を利用することが可能となりました。下記では接続情報名がfoobar、MySQLサーバが稼働するホストの名称がfoobar.mysql.com、そしてユーザ名がscottの接続情報を作成しています。”Enter password:“の表示の後にscottのパスワードを入力します。ここで作成された接続情報は、ユーザのホームディレクトリの.mylogin.cnfというファイルに暗号化されて格納されています。mysql_config_editorコマンドのprintで表示してもパスワードそのものは表示されません。
mysql_config_editorおよび--login-pathオプションの詳細は下記URLを参照してください。 http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html