オプションの指定

広告

MySQLコマンドラインツールは起動する時の書式をもう一度確認すると次のようにになります。

mysql [OPTIONS] [database]

このページでは指定可能なオプションについて確認していきます。

まずはMySQLコマンドラインツールのヘルプを表示させてみます。コマンドプロンプトを起動し、次のように実行してください。

mysql -?

p2-1

次のように表示されます。(分かりやすいように出力された内容をテーブルとして表示しています)。

指定可能なオプション:

OPTIONS意味
-?, --helpDisplay this help and exit.
-I, --helpSynonym for -?
--auto-rehashEnable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash.
-A, --no-auto-rehashNo automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead.
-B, --batchDon't use history file. Disable interactive behavior. (Enables --silent)
--character-sets-dir=nameDirectory where character sets are.
--column-type-infoDisplay column type information.
-c, --commentsPreserve comments. Send comments to the server. The default is --skip-comments (discard comments), enable with --comments
-C, --compressUse compression in server/client protocol.
-#, --debug[=#]This is a non-debug version. Catch this and exit
--debug-checkCheck memory and open file usage at exit.
-T, --debug-infoPrint some debug info at exit.
-D, --database=nameDatabase to use.
--default-character-set=nameSet the default character set.
--delimiter=nameDelimiter to be used.
-e, --execute=nameExecute command and quit. (Disables --force and history file)
-E, --verticalPrint the output of a query (rows) vertically.
-f, --forceContinue even if we get an sql error.
-G, --named-commandsEnable named commands. Named commands mean this program's internal commands; see mysql> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default.
-g, --no-named-commandsNamed commands are disabled. Use ¥* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option deprecated; use --disable-named-commands instead.
-i, --ignore-spacesIgnore space after function names.
--local-infileEnable/disable LOAD DATA LOCAL INFILE.
-b, --no-beepTurn off beep on error.
-h, --host=nameConnect to host.
-H, --htmlProduce HTML output.
-X, --xmlProduce XML output
--line-numbersWrite line numbers for errors.
-L, --skip-line-numbersDon't write line number for errors. WARNING: -L is deprecated, use long version of this option instead.
-n, --unbufferedFlush buffer after each query.
--column-namesWrite column names in results.
-N, --skip-column-namesDon't write column names in results. WARNING: -N is deprecated, use long version of this options instead.
-O, --set-variable=nameChange the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.
--sigint-ignoreIgnore SIGINT (CTRL-C)
-o, --one-databaseOnly update the default database. This is useful for skipping updates to other database in the update log.
-p, --password[=name]Password to use when connecting to server. If password is not given it's asked from the tty.
-W, --pipeUse named pipes to connect to server.
-P, --port=#Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
--prompt=nameSet the mysql prompt to this value.
--protocol=nameThe protocol of connection (tcp,socket,pipe,memory).
-q, --quickDon't cache result, print it row by row. This may slow down the server if the output is suspended. Doesn't use history file.
-r, --rawWrite fields without conversion. Used with --batch.
--reconnectReconnect if the connection is lost. Disable with --disable-reconnect. This option is enabled by default.
-s, --silentBe more silent. Print results with a tab as separator, each row on new line.
--shared-memory-base-name=nameBase name of shared memory.
-S, --socket=nameSocket file to use for connection.
--sslEnable SSL for connection (automatically enabled with other flags). Disable with --skip-ssl.
--ssl-ca=nameCA file in PEM format (check OpenSSL docs, implies --ssl).
--ssl-capath=nameCA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=nameX509 cert in PEM format (implies --ssl).
--ssl-cipher=nameSSL cipher to use (implies --ssl).
--ssl-key=nameX509 key in PEM format (implies --ssl).
--ssl-verify-server-certVerify server's "Common Name" in its cert against hostname used when connecting. This option is disabled by default.
-t, --tableOutput in table format.
--tee=nameAppend everything into outfile. See interactive help (¥h) also. Does not work in batch mode. Disable with --disable-tee. This option is disabled by default.
--no-teeDisable outfile. See interactive help (¥h) also. WARNING: option deprecated; use --disable-tee instead
-u, --user=nameUser for login if not current user.
-U, --safe-updatesOnly allow UPDATE and DELETE that uses keys.
-U, --i-am-a-dummySynonym for option --safe-updates, -U.
-v, --verboseWrite more. (-v -v -v gives the table output format).
-V, --versionOutput version information and exit.
-w, --waitWait and retry if connection is down.
--connect_timeout=#Number of seconds before connection timeout.
--max_allowed_packet=#Max packet length to send to, or receive from server
--net_buffer_length=#Buffer for TCP/IP and socket communication
--select_limit=#Automatic limit for SELECT when using --safe-updates
--max_join_size=#Automatic limit for rows in a join when using --safe-updates
--secure-authRefuse client connecting to server if it uses old (pre-4.1.1) protocol
--server-arg=nameSend embedded server this as a parameter.
--show-warningsShow warnings after every statement.
aaabbb

現在の設定値:

VariablesValue
auto-rehashTRUE
character-sets-dir(No default value)
column-type-infoFALSE
commentsFALSE
compressFALSE
debug-checkFALSE
debug-infoFALSE
database(No default value)
default-character-setutf8
delimiter;
verticalFALSE
forceFALSE
named-commandsFALSE
ignore-spacesFALSE
local-infileFALSE
no-beepFALSE
host(No default value)
htmlFALSE
xmlFALSE
line-numbersTRUE
unbufferedFALSE
column-namesTRUE
sigint-ignoreFALSE
port3306
promptmysql>
quickFALSE
rawFALSE
reconnectTRUE
shared-memory-base-name(No default value)
socket(No default value)
sslFALSE
ssl-ca(No default value)
ssl-capath(No default value)
ssl-cert(No default value)
ssl-cipher(No default value)
ssl-key(No default value)
ssl-verify-server-certFALSE
tableFALSE
user(No default value)
safe-updatesFALSE
i-am-a-dummyFALSE
connect_timeout0
max_allowed_packet16777216
net_buffer_length16384
select_limit1000
max_join_size1000000
secure-authFALSE
show-warningsFALSE

非常に長いのですが、前半部分が指定可能なオプション、後半部分が現在設定されている値を表示しています。

オプションの指定は二通りの指定方法があるものもあります。例えばバージョンを表示するためのオプションは次のように記載されています。

-V, --version       Output version information and exit

このように記載されている場合は次のようにどちらの指定方法を使っても同じです。

mysql -V
mysql --version

全てのオプションを理解しておく必要はありません。必要に応じて設定可能なものが無いかどうかを調べるようにして下さい。

MySQLコマンドラインツールの各値にはデフォルトの値が用意されていますが、一部の値は設定ファイルを読み込んでデフォルトの値として設定しています。設定ファイルは次のファイルを順に読み込んで値を設定していきます。

C:¥WINDOWS¥my.ini
C:¥WINDOWS¥my.cnf
C:¥my.ini
C:¥my.cnf
d:¥MySQL¥MySQL Server 5.1¥my.ini
d:¥MySQL¥MySQL Server 5.1¥my.cnf 

存在しないファイルもあります。実際私の環境では「d:¥MySQL¥MySQL Server 5.1¥my.ini」しかありませんので、実質的にこのファイルを読み込んでデフォルトの値として設定を行っています。(このファイルはMySQLサーバ側でも読み込んでいるものです)。

ファイルから読み込んで設定している値をは次のようにして確認することができます。

mysql --print-defaults

p2-2

また次のようにして読み込む設定ファイルを指定することもできます。

mysql --defaults-file="d:¥MySQL¥MySQL Server 5.1¥my.ini"

※パスに空白が含まれる場合は全体をダブルクオーテーションで囲って指定して下さい。

では次のページでMySQLサーバに接続するためのユーザー名とパスワードを指定するためのオプションについて確認します。

( Written by Tatsuo Ikura )