目次
ここでは MySQL AB におけるコマンドラインの概要と、プログラムを起動させたときの具体的なオプション基本構造についての解説が述べられています。大半のプログラムにはそれぞれに呼応した特定のオペレーション システムが必要となりますが、オプション構造は全てにおいて似通っています。後半では個々のプログラムについて、どのオプションがサポートされるかという内容も含めたより詳しい解説がなされます。
MySQL AB はまた、3つの GUI のクライアントプログラムを MySQL サーバとして使用しています。
MySQL アドミニストレータ:このツールでは MySQL サーバ、データベース、テーブル、そしてアカウントが管理されています。
MySQL クエリブラウザ:このグラフィカルツールでは MySQL AB によって、MySQL データベースにおける作成、実行、そしてディスク最適化が行われます。
MySQL 移動ツールキット:このツールはスキーマとデータを MySQL と使用するため、関連する他のデータベース管理システムから移動する際に使用されます。
これらの GUI プログラムそれぞれには個々のマニュアルがあり、http://dev.mysql.com/doc/ からアクセスすることができます。
MySQL AB は様々な種類のプログラムを提供しています。
MySQL サーバとその起動スクリプト:
mysqld が MySQL サーバです。
mysqld_safe, mysql.server と mysqld_multi はサーバ起動スクリプトです。
mysql_install_dbによってデータディレクトリと初期データベースが初期化されます。
MySQL インスタンス・マネージャーが MySQL サーバのインスタンスを表示、そして管理します。
章?4. データベース管理ではこれらのプログラムについてより詳しい解説がなされています。
サーバにアクセスしているクライアントプログラム:
mysql は SQL ステートメントをインタラクティブに、また一括モードで実行するためのコマンドラインクライアント。
mysqladmin は管理におけるクライアント。
mysqlcheck はテーブルメンテナンスオペレーションを行います。
mysqldump と mysqlhotcopy はデータベースのバックアップを行います。
mysqlimport はデータファイルをインポートします。
mysqlshow はデータベースとテーブルについての情報を表示します。
章?7. クライアントプログラムとユーティリティ プログラムではこれらのプログラムについてより詳しい解説がなされています。
サーバとは独立して作動するユーティリティプログラム:
myisamchk はテーブルメンテナンスオペレーションを行います。
myisampack はテーブルを圧縮し、リードオンリーにします。
mysqlbinlog はバイナリログファイルを処理するためのツールです。
perror はエラーコードの意味を表示します。
章?7. クライアントプログラムとユーティリティ プログラムではこれらのプログラムについてより詳しい解説がなされています。
MySQL ディストリビューションの殆どがこれらのプログラム全てを含んでいますが、プラットフォームに特有のプログラムはこれに含まれません。(例:サーバ起動スクリプトは Windows では使用されません)例外として RPM ディストリビューションはより明細かされています。サーバ用の RPM がひとつ、そしてそれとはまた別にクライアントプログラムのためのものがある、といった具合になっています。もしこのプログラムのうちのいくつかが欠けているようであれば、章?2. MySQL のインストールと更新を参照して、ディストリビューションのタイプとその内容を確認してください。全プログラムを含まないディストリビューションである可能性があり、その際には別のものをインストールする必要があります。
MySQL プログラムをコマンド
ライン(シェル、またはコマンド
プロンプトから)から呼び出すには、そのプログラムに実行したい内容を命令するためのオプション、または引数を含むプログラム名を入力します。下に表示されているコマンドはプログラム実施のサンプルです。ここでの
「shell>
」
はコマンドインタープリタへのプロンプトを表していて、ユーザによって入力されたものではありません。このプロンプトは使用されるコマンドインタープリタによって異なります。多く見られるものとしては、sh
または
bashとして $
、csh
または tcsh として
%
、そして Windows
の command.com または
cmd.exe
コマンドインタープリタとしてC:\>
が挙げられます。
shell>mysql -u root test
shell>mysqladmin extended-status variables
shell>mysqlshow --help
shell>mysqldump --user=root personnel
シングル、またはダブルダッシュ (‘-
’、‘--
’)
で始まる引数はオプション引数です。これらは一般的にプログラムがサーバに対してとるべき接続タイプを特定するか、その作動モードに影響を与えます。オプション構文については
項3.3. 「プログラム・オプションの指定」 で述べられています。
ノンオプション引数(ダッシュを伴わない引数)はプログラムに追加の情報を提供します。例えば
mysql
は最初のノンオプション引数をデータベース名に変換し、これによってコマンド
mysql -u root test
が test
データベースの使用が要求されていることを指示します。
個々のプログラムについてより詳しい解説がなされている後半のセクションでは、どのオプションがプログラムによって認知されるかが明らかにされ、そして追加のノンオプション引数についても説明がされています。
オプションのうちのいくつかは多くのプログラムに共通しているものです。そのうちの最も多くは、
--host
(または
-h
)、--user
(または
-u
)、そして --password
(または -p
)
オプションで、コネクションパラメータを特定します。これらは
MySQL サーバが作動しているホスト、そして MySQL
アカウントのユーザネームとパスワードを表示します。これらのオプションは全ての
MySQL
クライアント・プログラムによって認知されます。これによって初めて、どのサーバに接続するか、そしてサーバの使用に必要なアカウントが特定されます。
その他の接続オプションとしては、TCP/IP
ポート番号を特定する --port
(または
-P
)、そして Unix 上(Windows
ではパイプ名と呼ばれる)で Unix
ソケットファイルを特定する --socket
(または -S
) があります。
初期設定時のホスト名は
localhost
です。Unix
上でのクライアントプログラムには、このホストネーム
localhost
は特別な意味を持っています。これによってクライアントがUnixソケットファイルを通し
MySQL
サーバに接続することができるようになります。これはまた、--port
もしくは -P
オプションがポート番号を特定するために与えられたとしても実行されます。クライアントによって
TCP/IP
接続をローカルサーバに確実に行わせるためには、ホスト名、もしくは
IP アドレス、ローカルサーバ名のいずれかを
127.0.0.1
に指定するために --host
または -h
を使用します。--protocol=tcp
オプションを使用することによって、localhost
に対してもまた、プロトコル接続をさらに明確に指定することができます。
プログラムがインストールされている
bin
ディレクトリへのパスネームを使って MySQL
を起動させることが必要とされることもあります。この場合は、bin
ディレクトリ以外の辞書を使用して MySQL
の起動を試み、「program not found」
というエラーが表示された可能性があります。MySQL
をさらに実用的に使用できるように
bin
ディレクトリへのパスネームを PATH
環境変数セッティングに加えることも可能です。こうすることによってプログラムを、パスネームではなくプログラム名を入力するだけで実行することが出来るようになります。例えば
/usr/local/mysql/bin
に
mysqlがインストールされている場合、mysqlとしてプログラムを実行することが可能で、/usr/local/mysql/bin/mysql
として呼び出す必要はありません。
PATH
を変数にセッティングするの際の手順におけるコマンドインタープリタについては、使用説明を参照してください。環境変数セッティングの構文は各インタープリタごとに特有となっています。(これに関する説明は
項3.3.3. 「オプション指定のための環境変数の使用」で述べられています)
MySQL プログラムのオプションを指定するには次の手段があります。
プログラム名に続くコマンドラインにオプションをリストアップします。これはプログラムを特別な形で立ち上げる際のオプションの中として最も代表的なものです。
オプションをプログラム起動時に読み込まれるオプション ファイルの中にリストアップします。これはプログラム起動の度、自動的に読み込まれるように設定する際に有効です。
オプションを環境変数にリストアップします。この方法はプログラム起動の際、その都度設定する場合に便利なオプションです。実際には、オプションファイルの使用理由の多くがこれに当てはまります。しかし、項4.12.2. 「Unix で複数サーバの実行」 では、環境変数が大変役立つ一例が取り上げられています。ここでは TCP/IP ポート番号と Unix ソケット ファイルをサーバとクライアント プログラム両用に指定するために便利な手法が述べられています。
MySQL はどのオプションが最初に与えられたかを環境変数内の調査、そしてオプションファイルの読み取り、コマンドラインのチェックといった作業を通して判断します。これはつまり、環境変数は優位性が最も低く、コマンドラインのオプションは優位性が最も高いということを意味しています。
オプションは規則正しく処理されるため、特定のオプションが複数回指定されると、最後のものが最優先されるようになっています。ここで取り上げる次のコマンドは、localhost
上のサーバに接続するための
mysqlを立ち上げます。
shell> mysql -h example.com -h localhost
相反する、または関連するオプションが与えられた場合、後で与えられたオプションが前のものよりも優先されます。次のコマンドは mysql を 「列名なし」 モードで立ち上げます。
shell> mysql --column-names --skip-column-names
オプションの指定は、完全な形、または不明瞭な点なく頭部が入力されることで行われます。例えば、--compress
オプションはmysqldumpに--compr
として与えられた場合は読み取られますが、不明瞭な形の--comp
として与えられた場合は作動しません。
shell> mysqldump --comp
mysqldump: ambiguous option '--comp' (compatible, compress)
オプション頭部の入力次第では、プログラムに新たなオプションが実行される手順で問題が生じることもあるという点に注意してください。現在は問題のなくても今後不明瞭とされることも考えられます。
MySQL はオプションファイル内でプログラムのオプションに初期設定値を指定することでオプションを処理していきます。従って、これを利用すれば、プログラムを立ち上げる際毎回手動で入力しなくてもよいだけでなく、必要に応じてはコマンドラインのオプションを使うことで初期設定を塗り替えることもできます。
コマンドラインにおけるプログラムのオプションは次の法則に従って作動します。
オプションはコマンド名の後に置かれます。
オプション引数はその名前が短いか長いかに応じて、シングル、またはダブルダッシュで始まります。オプションの多くがこの両方を持ち合わせています。例えば、-?
と--help
は
MySQL
でヘルプメッセージの表示を行うオプションのそれぞれのフォームにあたります。
オプション名は時にとてもデリケートなものでもあります。-v
と-V
はどちらも正しく、それぞれ異なる意味を持っています。(-vは--verbose
の、-Vは--version
の短縮形としての意味で使われます。)
オプションの中にはオプション名に続く値をとるものもあります。例えば、-h
localhost
または--host=localhost
は
MySQL
がクライアントプログラムをホストしていることを示します。オプションの値はプログラムに
MySQL
が起動しているホストの名前を示します。
値を持つ長いオプションにおいては、オプション名と値を‘=
’印に従って切り離します。値を持つ短いオプションでのその値はオプション名の直後に続いているか、またはスペースが空いていますが、-hlocalhost
と -h
localhost
は同等の意味を持っています。ここでの例外は、MySQL
パスワードを指定するオプションの法則です。このオプションは
--password=
という長い形でか、pass_val
--password
という短い形で与えられます。後者の場合(パスワード値が与えられていない状態で)には、プログラムによってパスワードを入力するようにとのプロンプトが表示されます。パスワードオプションはまた、-p
、もしくはpass_val
-p
という短い形で入力することも可能です。しかしこの場合、もし値が付属していれば間にスペースを入れずオプションの直後に値が来るようにしなければいけません。その理由は、もしオプションの後にスペースが入れば、プログラムはこれに続く引数がパスワード値なのか、または何か別の引数なのかを特定することができなくなくなるからです。従って、ここで例に挙げるふたつのコマンドはそれぞれが全く異なった意味を持っています。
shell>mysql -ptest
shell>mysql -p test
初めのコマンドはtest
のパスワード値を使用するためのmysqlを指示しますが、初期設定データベースの特定は行いません。これとは異なり、もう一方はmysqlプロンプトでパスワード値を求めるように指示し、さらにtest
を初期設定データベースとして使用します。
オプションのうちの数種はオン、またはオフの切り替えをコントロールします。例えば、mysqlクライアントは、クエリから得られる結果の冒頭にカラム名の行を表示するか否かを決定するオプション--column-names
をサポートします。この作業は初期設定において可能です。けれども、データだけを読み取り初期ヘッダーラインを読み取らないようなプログラムにmysqlが出力された場合などは、この機能を無効にすることも可能です。
列名を無効にするには次のオプションのうちのいずれかを指定します。
--disable-column-names --skip-column-names --column-names=0
--disable
と--skip
の頭部と末尾=0
は全て同じ働きをします。つまり、オプションをオフに切り替えます。
オプションを「enabled」に切り替えるためには、次のうちのいずれかを指定する必要があります。
--column-names --enable-column-names --column-names=1
もし頭部が--loose
のオプションがあれば、もしプログラムがオプションを認知できない場合でもエラーで終了せず、ただ警告を発します。
shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'
この --loose
はMySQLを同じコンピュータ上に複数回インストールした状態でプログラムを立ち上げ、オプションファイルにオプションをリストアップする時に役立ちます。
全てのバージョンには認知されないようなオプションでも
--loose
またはオプションファイル内では
loose
を入力することによって使用可能になります。オプションを認知できるバージョンでは通常通りに処理され、そうでないバージョンでは警告が表示され、そして無視されます。
その他のオプションの中で場合によってはmysqlとともに便利に働くのが--execute
、または-e
で、SQLステートメントをサーバに送り届けます。ステートメントはシングル、またはダブルの引用符で囲まれている必要があります。もしこの引用符内の値を使用したい場合には、ステートメントにダブルの引用符を使用し、シングルの引用符をステートメント内の値のうちのいづれかに使用します。このオプションが使用される際には、mysqlがステートメントを実行し、その後終了します。
ここで例として、次のコマンドをユーザアカウントのリスト取得のために使うことにしましょう。
shell>mysql -u root -p --execute="SELECT User, Host FROM user" mysql
Enter password:******
+------+-----------+ | User | Host | +------+-----------+ | | gigan | | root | gigan | | | localhost | | jon | localhost | | root | localhost | +------+-----------+ shell>
長い形のタイプ(--execute
)の後ろにはイコール(=
)が続いている事を確認します。
上記の例ではmysql
データベースの名前は個別の引数として認められています。しかし、同じステートメントを初期設定データベースをしていしないコマンドを使用して実行することも可能です。
mysql> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
複数のSQLステートメントはセミコロンによって切り離され、コマンドライン上に認められることもあります。
shell>mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password:******
+-----------------+ | VERSION() | +-----------------+ | 5.1.5-alpha-log | +-----------------+ +---------------------+ | NOW() | +---------------------+ | 2006-01-05 21:19:04 | +---------------------+
オプション--execute
、または-e
は、アナログ形式のコマンドをMySQLクラスターへのndb_mgm管理クライアントへと届けるために使用されることもあります。例については
項14.3.6. 「安全なシャットダウンと再起動」を参照してください。
MySQLプログラムの多くは、スタートアップのオプションをオプションファイル(時にコンフィグレーションファイルとも呼ばれる)から解読することができます。オプションファイルはよく使用されるオプションを指定するのに便利で、これによって毎回プログラムを起動させるたびにコマンドラインにおける作業を省略することができます。MySQLサーバにはMySQLによって多大なpreconfigured option filesが提供されます。
プログラムがオプションファイルを解読しているかを確認するには、--help
(mysqldには--verbose
と--help
)を使用してプログラムを起動します。プログラムがオプションファイルを解読している場合には、ヘルプメッセージによって解読中のファイルとどのオプショングループを認識中かが表示されます。
注記 :MySQL クラスタープログラムを伴うオプションファイルについては 項14.4. 「MySQL Cluster の設定」で述べられています。
Windowsにおいて、MySQLプログラムは次のファイルからスタートアップオプションを解読します。
ファイル名 | 目的 |
| グローバルオプション |
C:\my.cnf | グローバルオプション |
| グローバルオプション |
defaults-extra-file | --defaults-extra-file= で指定されたファイル(あれば) |
WINDIR
ユーザのWindowsディレクトリの場所を表しています。一般的に、C:\WINDOWS
もしくは
C:\WINNT
になります。以下のコマンドを使用して
WINDIR
環境変数の値から正確なロケーションを割り出すことができます。
C:\> echo %WINDIR%
INSTALLDIR
はMySQLのインストールディレクトリを表します。これは主に、C:\
です。MySQL
5.1がインストールとコンフィギュレーションウィザードを使用してインストールされた場合、PROGRAMDIR
\MySQL\MySQL
5.1 ServerPROGRAMDIR
がプログラムディレクトリ(通常は英語バージョンWindows上の
Program Files
を表します。 詳細は
項2.3.4.14. 「my.ini ファイルのロケーション」
を参照してください。
Unixにおいて、MySQLプログラムは次のファイルからスタートアップオプションを解読します。
ファイル名 | 目的 |
/etc/my.cnf | グローバルオプション |
$MYSQL_HOME/my.cnf | サーバ固有のオプション |
defaults-extra-file | --defaults-extra-file= で指定されたファイル(あれば) |
~/.my.cnf | ユーザ固有のオプション |
MYSQL_HOME
はサーバ固有のファイルmy.cnf
を含むディレクトリへのパスを含む環境変数です。
MYSQL_HOME
がセットされていない状態で
mysqld_safe
プログラムを使ってサーバをスタートさせると、
mysqld_safe は次のように
MYSQL_HOME
をセットしようとします。
BASEDIR
と
DATADIR
をそれぞれ、MySQLベースディレクトリとデータディレクトリのパスネームの代理に立てます。
DATADIR
にはmy.cnf
ファイルが存在し、BASEDIR
には存在しない場合、mysqld_safeはMYSQL_HOME
をDATADIR
にセットします。
または、もしMYSQL_HOME
がセットされておらず、my.cnf
ファイルがDATADIR
に存在しない場合、mysqld_safeはBASEDIR
にMYSQL_HOME
をセットします。
MySQL
5.1ではDATADIR
のmy.cnf
ファイルのロケーションとしての使用は認証されていません。BASEDIR
の方が良い場所です。
一般的にDATADIR
は/usr/local/mysql/data
でバイナリインストールに、または/usr/local/var
でソースインストールに使用されます。これはコンフィグレーションタイムに特定されたデータディレクトリロケーションであって、mysqldが起動したときの--datadir
オプションに呼応しているのではないということに注意してください。--datadir
の起動時の使用はサーバがオプションファイルを探す際に何の影響ももたらしません。
これはサーバがオプションを処理する前にオプションファイルを探すからです。
MySQLは指示された通りの順序でオプションファイルを探し、その中で存在するものを解読します。もし使用したいオプションファイルが存在しなければ、プレーンテキストエディタで新しく作ってください。
与えられたオプションに対して複数のインスタンスが挙がった場合には、最後のものが優先されます。ここでの唯一の例外は:mysqldに対して、--user
オプションの最初のインスタンスがセキュリティー上用心のため使用され、オプションファイルのユーザ固有タイプがコマンドラインで優先されるのを防ぎます。
注記 :Unixのプラットフォームでは、MySQLは全世界から書き込み・書き取り可能なコンフィグレーションファイルを認知しません。これは故意に行われており、セキュリティー対策です。
MySQL起動時にコマンドラインにおいて与えられるロングオプションは、その全てがオプションファイルにも送られる可能性があります。プログラムに対して使用可能な存在するオプションのリストを入手するには、--help
オプションを使用してプログラムを起動してください。
オプションファイルへとオプションを特定するための構文はコマンドラインの構文と似通っており、異なる点は頭のダブルダッシュを省略するというところだけです。例えば、コマンドラインにおける--quick
または--host=localhost
は、quick
またはhost=localhost
としてオプションファイル内に指定されます。--loose-
という形のオプションをオプションファイルに指定するには、opt_name
loose-
という形で入力します。
opt_name
オプションファイルでは空白のラインは認識されません。空白でないラインは次のいづれかの形を取ります。
#
,
comment
;
comment
コメントラインは ‘#
’
または
‘;
’で始まります。‘#
’
コメントはラインの真ん中からスタートすることもできます。
[
group
]
group
とはプログラムの名前、またはオプションをセットしたいグループを示します。グループラインの後には、オプションファイル、あるいは別のグループラインの端が与えられるまで、オプションをセットするラインは全て指定されたグループに当てはまります。
opt_name
これはコマンドラインの--
と同じです。
opt_name
opt_name
=value
これはコマンドラインの--
と同じです。オプションファイルでは‘opt_name
=value
=
’の周囲にスペースをおくこともできますが、これはコマンドラインでは適切な操作ではありません。シングル、またはダブルの引用符で閉じることができ、これはコメントラインが‘#
’、またはスペースを含んでいる場合に有効です。
数値の値をとる変数については、値は、1024、10242乗または10243乗、それぞれの乗数を示すために、K
、M
あるいはG
(大文字か小文字のいずれか)の接尾辞で与えることができます。例えば次のコマンドはmysqladminへサーバに1024回pingを打つように、そして各pingの間それぞれ10秒ずつ間を空けるようにと命令します。
mysql> mysqladmin --count=1K --sleep=10 ping
ブランクのリードと追跡はオプション名とその値から自動的に削除されます。バックスペース、タブ、復帰改行、キャリッジリターン、バックスラッシュおよびスペース文字を表わすために、オプション値の中でエスケープシーケンス‘\b
’、‘\t
’、‘\n
’、‘\r
’、‘\\
’、および
‘\s
’を使用することもできます。
‘\\
’
エスケープシーケンスが単一のバックスラッシュを表わすので、‘\\
’として各‘\
’を書かなければなりません。選択肢としては、パスネームセパレータとして‘\
’ではなく‘/
’を使用して、値を指定することができます。
オプショングループ名がプログラム名と同じである場合、グループ中のオプションは特定のそのプログラムに当てはまります。例えば、[mysqld]
および[mysql]
グループは、mysqldサーバおよびmysqlクライアントプログラムにそれぞれ当てはまります。
[client]
オプショングループは、すべてのクライアントプログラム(mysqldは除く)によって解読されます。これによって全てのクライアントに当てはまるオプションを指定することが可能になります。例えば、[client]
は、サーバに接続するために使用するパスワードを指定するために使用する完全なグループです(しかしオプションファイルはユーザ当事者にのみ判読可能、書き込み可能であることに注意してください。
これによって、他のユーザはこのパスワードを見つけ出すことができなくなります)。使用する全てのクライアントプログラムに認識されない限り、[client]
グループにオプションを入れないようにしてください。オプションを解読しないプログラムは、オプションを実行しようとすればエラーメッセージを表示した後に中断されます。
次に示されているのは典型的なグローバルオプションファイルです。
[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock key_buffer_size=16M max_allowed_packet=8M [mysqldump] quick
上のオプションファイルは、key_buffer_size
とmax_allowed_packet
の変数をセットするラインのために
構文を使用します。
var_name
=value
ここに典型的なユーザオプションファイルがあります。
[client] # The following password will be sent to all standard MySQL clients password="my_password" [mysql] no-auto-rehash connect_timeout=2 [mysqlhotcopy] interactive-timeout
特定のMySQLリリースシリーズのmysqldサーバのみによって解読されるオプショングループを作りたければ、[mysqld-5.0]
、[mysqld-5.1]
などの名前を備えたグループの使用により可能になります。次のグループは次のことを示します--new
オプションは5.1.xバージョン番号を持ったMySQLサーバによってのみ使用される必要があります。
[mysqld-5.1] new
MySQL
5.0.4から始め、オプションファイルを求めて特定のディレクトリを探索する他のオプションファイル、および!includedir
を含むようにオプションファイルの中で!include
指令を使用することができます。例えば、/home/mydir/myopt.cnf
ファイルを含むためには次の指令を使用することができます。
!include /home/me/myopt.cnf
/home/mydir
ディレクトリを探し出し、見つかったオプションファイルを解読するためにはこの指令を使います。
!includedir /home/mydir
注記
:一般的に、Unixオペレーティングシステム上で見つけることができ、!includedir
指令の使用が含まれているファイルの全てが、.cnf
で終わるファイル名を持っていなければいけません。Windowsにおいては、この指令が.ini
か.cnf
拡張を備えたファイルをチェックします。
付属のファイルから解読されたオプションは、一般的なオプショングループのコンテキストに適用されることに注意してください。my.cnf
に次のラインを書かなければならないと仮定してください。
[mysqld] !include /home/mydir/myopt.cnf
この場合、myopt.cnf
ファイルはサーバ用にのみ処理されます。
また、!include
指令は全てのクライアントアプリケーションによって無視されます。しかし、次のラインを使用したならば、ディレクトリ/home/mydir/my-dump-options
は、サーバによって、あるいは他のクライアントアプリケーションによってではなく、mysqldumpのみによってオプションファイルのチェックが行われます。
[mysqldump] !includedir /home/mydir/my-dump-options
ソース分配を持っていれば、support-files
ディレクトリ中にmy-
という名前のサンプルオプションファイルが見つかります。バイナリ分配の場合は、MySQLインストールディレクトリの下でxxxx
.cnfsupport-files
ディレクトリの中を見てください。Windowsにおいては、サンプルオプションファイルはMySQLインストールディレクトリに置かれていることがあります(この章の前半、どこのことか分からない場合には章?2. MySQL のインストールと更新を参照してください)。一般的に、小さな、ミディアム、大きな、また大規模システムのためのサンプルオプションファイルがあります。これらのファイルのうちのひとつで実験するには、Windows上でC:\my.cnf
に、あるいはUnix上のホームディレクトリ中にある.my.cnf
にコピーしてください。
注記
:Windowsにおいては、.cnf
か.ini
オプションファイル拡張が表示されない可能性があります。
オプションファイルをサポートするMySQLプログラムは全て、次のオプションを扱い、オプションファイル取り扱いに影響します。したがって、これらはオプションファイル中でではなくコマンドライン上で与えられる必要があります。適切な動作のためには、これらのオプションの各々は速やかにコマンド名に続かなければなりません。
ここでの例外として、--print-defaults
は--defaults-file
または--defaults-extra-file
直後に使用することができます。また、望み通りに解釈されないかもしれないので、ファイル名を指定する場合‘~
’シェルメタ文字の使用は回避するべきです。
どんなオプション・ファイルも読まないでください。
オプションファイルから得るプログラム名、および全てのオプションを印刷してください。
与えられたオプションファイルだけを使用してください。file_name
はファイルへのフルパスネームです。ファイルが存在しないかアクセス不能な場合、プログラムはエラーメッセージとともに終了します。
--defaults-extra-file=
file_name
グローバルなオプションファイルの後に、しかし(Unix上では)ユーザオプションファイルの前にこのオプションファイルを読んでください。file_name
はファイルへのフルパスネームです。ファイルが存在しないかアクセス不能な場合、プログラムはエラーメッセージとともに終了します。
このオプションが与えられる場合、プログラムは通常のオプショングループだけでなく通常の名前、およびstr
の接尾辞を備えたグループも解読します。例えば、mysqlクライアントは通常[client]
および[mysql]
グループを解読します。--default-group-suffix=_other
オプションが与えられた場合には、mysqlはさらに[client_other]
および[mysql_other]
グループも解読します。
シェルスクリプトでは、オプションファイルを解析するmy_print_defaultsプログラムを使用し、オプションが与えられたプログラムによって何に使用されるか確かめることができます。次の例は、[client]
および[mysql]
グループで見つかったオプションを表示するように依頼された時、my_print_defaultsによって生産される可能性のある出力を示しています。
shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
開発者への注意:オプションファイル取り扱いは、単純に適切なグループ中で、または任意のコマンドライン引数の前でオプションを全て処理することにより、Cクライアントライブラリで実行されます。複数回指定されるオプションの最後のインスタンスを使用するプログラムにとって、これは有効な方法です。複数回指定されるオプションをこの方法で扱うが、オプションファイルを解読しないCまたはC++のプログラムを持っている場合、この機能を使えるようにするためにはたった2行のラインを加えればよいだけです。この方法を確認するには、スタンダードMySQLクライアントのうちのいずれかのソースコードをチェックしてください。
MySQLへの他の言語インターフェースのうちのいくつかはCクライアントライブラリに基づいています。 またその中には、オプションファイルのコンテンツへアクセス方法が提供されているものもあります。これらはPerlとPythonを含んでいます。詳細については、手持ちのインターフェースにとって好ましい使用説明を参照してください。
MySQLは、MySQLサーバを調整する際にベースとして使用することができる、あらかじめ形成されたオプションファイルを数多く提供します。基礎構成ファイルとしての使用のための適切な位置へリネームしコピーすることのできるmy-small.cnf
、my-medium.cnf
、my-huge.cnf
、およびmy-huge.cnf
といったファイル用のインストールディレクトリの中を見てください。名前、そして適切な位置に関しては項3.3.2. 「オプションファイルの使用」の一般的な情報を参照してください。Windowsにおいてこれらのファイルは、.cnf
よりも.ini
拡張を持っている確立が高いです。
環境変数を使用してオプションを指定するためには、コマンド処理プログラムに適切な構文を使用し、変数をセットしてください。例えば、WindowsまたはNetWareにおいては、USER
変数にMySQLアカウント名を指定させることができます。そのためには、次の構文を使用してください。
SET USER=your_name
Unixの上の構文はユーザのシェルに依存します。MYSQL_TCP_PORT
変数を使用してTCP/IPポート番号を指定すると仮定してください。典型的な構文(sh、bash
、zshなど)は、以下の通りです。
MYSQL_TCP_PORT=3306 export MYSQL_TCP_PORT
最初のコマンドが変数を設定し、また、export
コマンドがシェル環境に変数を輸出することによって、その値がMySQLおよび他のプロセスにアクセス可能になるようになります。
cshとtcshについては、シェル変数を環境を利用可能にするためにsetenvを使用してください。
setenv MYSQL_TCP_PORT 3306
環境変数をセットするコマンドは効果を直ちに現わすため、ユーザのコマンドプロンプトで実行することができます。
しかし、このセッティングはログアウトするまでしか続きません。このセッティングがログインごとに効果を発揮するようにするためには、コマンドインタープリタが毎回起動時に解読するスタートアップファイルに適切なコマンド(複数可)を置きます。典型的なスタートアップファイルは、Windows用のAUTOEXEC.BAT
、bash用の.bash_profile
あるいはtcsh用の.tcshrc
です。詳細についてはコマンドインタープリタについての使用説明を参照してください。
項2.14. 「環境変数」にはMySQLプログラムオペレーションに影響する環境変数が全てリストアップされています。
MySQLプログラムの多くがランタイムでセットすることができる内部変数を持っています。プログラム変数は、値をとる他の長いオプションと同じ方法を課されます。例えば、mysqlは、そのコミュニケーションバッファの最大サイズをコントロールするmax_allowed_packet
変数を持っています。mysqlのために16MBの値に
max_allowed_packet
変数をセットするためには、下記コマンドのどちらかを使用してください。
shell>mysql --max_allowed_packet=16777216
shell>mysql --max_allowed_packet=16M
第1のコマンドはバイトで値を指定します。第2はメガバイトで値を指定します。数値の値をとる変数については、値は、1024、10242乗または10243乗、それぞれの乗数を示すために、K
、M
あるいはG
(大文字か小文字のいずれか)の接尾辞で与えることができます。(例えば、max_allowed_packet
をセットするために使用された時、接尾辞はキロバイト、メガバイトあるいはギガバイトのユニットを示します)。
オプションファイルでは、可変セッティングが主要なダッシュなしで与えられます。
[mysql] max_allowed_packet=16777216
または :
[mysql] max_allowed_packet=16M
好みによって変数名中の下線はダッシュとして指定することができます。次のオプショングループは等価です。共に512MBにサーバの重要なバッファのサイズをセットします。
[mysqld] key_buffer_size=512M [mysqld] key-buffer-size=512M
注記 :MySQL
4.0.2以前は、セットするプログラム変数用の唯一の構文は--set-variable=
(あるいはオプションファイル中のoption
=value
set-variable=
)でした。この構文はまだ存在しますが、MySQL
4.0.2でもクレームが多いものです。
option
=value
サーバシステム変数の多くはまた、ランタイムでもセットすることができます。詳細は、項4.2.4.2. 「動的システム変数」 をご覧ください。