MySQL プログラムに対してオプションを指定する方法はいくつかあります。
コマンド行で、プログラム名に続けてオプションをリストします。 これは、プログラムの特定の起動に適用されるオプションに共通です。
プログラムが起動するときに読み取るオプションファイルにオプションをリストします。 これは、プログラムを実行するとき毎回使用するオプションに共通です。
環境変数にオプションをリストします (セクション4.2.9「環境変数の設定」を参照してください)。 この方法は、プログラムを実行するとき毎回適用するオプションに便利です。 実際には、このためにはオプションファイルを使用する方が一般的ですが、環境変数が非常に役立つ状況については、セクション5.8.3「Unix 上での複数の MySQL インスタンスの実行」で説明しています。 そこでは、このような変数を使用して、サーバーとクライアントプログラムに対して TCP/IP のポート番号および Unix ソケットファイルを指定する便利なテクニックについて説明しています。
オプションは順に処理されるため、あるオプションが複数回指定されている場合、最後のものが優先されます。 次のコマンドでは、mysql は localhost
で稼働しているサーバーに接続します。
mysql -h example.com -h localhost
1 つ例外があります。mysqld では、オプションファイルで指定されたユーザーがコマンド行でオーバーライドされるのを防ぐため、安全対策として --user
オプションの最初のインスタンスが使用されます。
矛盾するオプションまたは関係するオプションが指定された場合、あとのオプションが先のオプションより優先されます。 次のコマンドは mysql を「カラム名なし」モードで起動します。
mysql --column-names --skip-column-names
MySQL プログラムでは、最初に環境変数を調べ、次にオプションファイルを処理し、次にコマンドラインをチェックして、どのオプションを指定するかを決定します。 後のオプションは前のオプションよりも優先されるため、処理順序は環境変数の優先順位が最も低く、コマンドラインオプションの優先順位が最も高いことを意味します。
サーバでは、1 つの例外が適用されます: データディレクトリ内の mysqld-auto.cnf オプションファイルは最後に処理されるため、コマンド行オプションよりも優先されます。
MySQL プログラムがオプションを処理する方法を利用して、プログラムのデフォルトオプション値をオプションファイルに指定できます。 それにより、プログラムを実行するたびに入力するのを避けることができると同時に、必要に応じてコマンド行オプションを使用することにより、デフォルトをオーバーライドできます。