mysqlimport クライアントは、LOAD DATA INFILE
SQL ステートメントにコマンド行インタフェースを提供します。mysqlimport に対するほとんどのオプションは、LOAD DATA INFILE
構文の句に直接対応しています。セクション13.2.6「LOAD DATA INFILE 構文」を参照してください。
mysqlimport は次のように起動します。
shell> mysqlimport [options] db_name textfile1 [textfile2 ...]
mysqlimport は、コマンド行で指定されたテキストファイルごとに、ファイル名の拡張子があればそれを取り除き、その結果をもとに、ファイル内容をインポートするテーブルの名前を決定します。たとえば、patient.txt
、patient.text
、および patient
と名付けられたファイルはすべて patient
と名付けられたテーブルにインポートされます。
mysqlimport は次のオプションをサポートします。これらはコマンド行またはオプションファイルの [mysqlimport]
グループおよび [client]
グループで指定できます。MySQL プログラムによって使用されるオプションファイルの詳細については、セクション4.2.6「オプションファイルの使用」を参照してください。
表 4.9 mysqlimport のオプション
オプション名 | 説明 | 導入 |
---|---|---|
--bind-address | 指定されたネットワークインタフェースを使用して MySQL サーバーに接続 | 5.6.1 |
--columns | このオプションはカンマによって分けられたカラム名のリストを値とします | |
--compress | クライアントとサーバー間で送信される情報をすべて圧縮 | |
--debug | デバッグのログを書き込み | |
--debug-check | プログラムの終了時にデバッグ情報を出力 | |
--debug-info | プログラムの終了時に、デバッグ情報、メモリー、および CPU の統計を出力 | |
--default-auth | 使用する認証プラグイン | 5.6.2 |
--default-character-set | デフォルト文字セットを指定 | |
--defaults-extra-file | 通常のオプションファイルに加えてオプションファイルを読み取る | |
--defaults-file | 指名されたオプションファイルのみを読み取る | |
--defaults-group-suffix | オプショングループのサフィクス値 | |
--delete | テキストファイルをインポートする前にテーブルを空にする | |
--fields-enclosed-by | このオプションは、LOAD DATA INFILE の対応する句と同じ意味を持っています | |
--fields-escaped-by | このオプションは、LOAD DATA INFILE の対応する句と同じ意味を持っています | |
--fields-optionally-enclosed-by | このオプションは、LOAD DATA INFILE の対応する句と同じ意味を持っています | |
--fields-terminated-by | -- このオプションは、LOAD DATA INFILE の対応する句と同じ意味を持っています | |
--force | SQL エラーが発生しても続行 | |
--help | ヘルプメッセージを表示して終了 | |
--host | 指定されたホスト上で MySQL サーバーに接続 | |
--ignore | --replace オプションの説明を参照 | |
--ignore-lines | データファイルの最初の N 行を無視 | |
--lines-terminated-by | このオプションは、LOAD DATA INFILE の対応する句と同じ意味を持っています | |
--local | クライアントホストから入力ファイルをローカルで読み込む | |
--lock-tables | テキストファイルを処理する前に、すべてのテーブルを書き込みロック | |
--login-path | ログインパスオプションを .mylogin.cnf から読み取り | 5.6.6 |
--low-priority | テーブルロード時に LOW_PRIORITY を使用。 | |
--no-defaults | オプションファイルを読み取らない | |
--password | サーバーに接続する際に使用するパスワード | |
--pipe | Windows で、名前付きパイプを使用してサーバーに接続 | |
--plugin-dir | プラグインがインストールされているディレクトリ | 5.6.2 |
--port | 接続に使用する TCP/IP ポート番号 | |
--print-defaults | デフォルトを出力 | |
--protocol | 使用する接続プロトコル | |
--replace | --replace および --ignore オプションは、一意のキー値に関して既存の行と重複する入力行の処理を制御 | |
--secure-auth | 古い (4.1.1 より前の) 形式でサーバーにパスワードを送信しない | 5.6.17 |
--shared-memory-base-name | 共有メモリー接続に使用する共有メモリーの名前 | |
--silent | エラーが発生したときのみ出力を生成 | |
--socket | ローカルホストへの接続で、使用する Unix ソケットファイル | |
--ssl | 接続に SSL を有効化 | |
--ssl-ca | 信頼された SSL CA のリストを含むファイルのパス | |
--ssl-capath | 信頼された SSL CA の PEM 形式の証明書を含むディレクトリのパス | |
--ssl-cert | PEM 形式の X509 証明書を含むファイルのパス | |
--ssl-cipher | SSL の暗号化に使用される、許可された暗号のリスト | |
--ssl-crl | 証明書失効リストを含むファイルのパス | 5.6.3 |
--ssl-crlpath | 証明書失効リストファイルを含むディレクトリのパス | 5.6.3 |
--ssl-key | PEM 形式の X509 鍵を含むファイルのパス | |
--ssl-verify-server-cert | サーバーへの接続時に、サーバーの証明書内のコモンネーム値をホスト名に対して検証 | |
--use-threads | 並列ファイルロードのスレッド数 | |
--user | サーバーへの接続時に使用する MySQL ユーザー名 | |
--verbose | 冗長モード | |
--version | バージョン情報を表示して終了 |
-
ヘルプメッセージを表示して終了します。
-
複数のネットワークインタフェースを持つコンピュータで、このオプションを使用して、MySQL サーバーへの接続に使用するインタフェースを選択します。
このオプションは MySQL 5.6.1 からサポートされています。
-
文字セットがインストールされているディレクトリ。セクション10.5「文字セットの構成」を参照してください。
-
--columns=
,column_list
-c
column_list
このオプションは、カンマで区切られたカラム名のリストを値として取ります。カラム名の順序は、データファイルのカラムとテーブルのカラムを対応付ける方法を示しています。
-
クライアントとサーバーの両方が圧縮をサポートしている場合、その間で送受信される情報をすべて圧縮します。
-
--debug[=
,debug_options
]-# [
debug_options
]デバッグのログを書き込みます。一般的な
debug_options
文字列はd:t:o,
です。デフォルトはfile_name
d:t:o
です。 -
プログラムの終了時に、デバッグ情報を出力します。
-
プログラムの終了時に、デバッグ情報とメモリーおよび CPU 使用率の統計を出力します。
-
--default-character-set=
charset_name
charset_name
をデフォルト文字セットとして使用します。セクション10.5「文字セットの構成」を参照してください。 -
使用するクライアント側の認証プラグイン。セクション6.3.7「プラガブル認証」を参照してください。
このオプションは MySQL 5.6.2 で追加されました。
-
--defaults-extra-file=
file_name
このオプションファイルは、グローバルオプションファイルのあとに読み取りますが、(UNIX では) ユーザーオプションファイルの前に読み取るようにしてください。ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。 -
指定されたオプションファイルのみ使用します。ファイルが存在しないかアクセスできない場合、エラーが発生します。
file_name
は、フルパス名でなく相対パス名として指定された場合、現行ディレクトリを基準にして解釈されます。 -
通常のオプショングループだけでなく、通常の名前に
str
のサフィクスが付いたグループも読み取ります。たとえば、mysqlimport は通常[client]
グループおよび[mysqlimport]
グループを読み取ります。--defaults-group-suffix=_other
オプションを指定した場合、mysqlimport は[client_other]
グループおよび[mysqlimport_other]
グループも読み取ります。 -
テキストファイルをインポートする前にテーブルを空にします。
-
--fields-terminated-by=...
,--fields-enclosed-by=...
,--fields-optionally-enclosed-by=...
,--fields-escaped-by=...
これらのオプションは
LOAD DATA INFILE
の対応する句と同じ意味を持っています。セクション13.2.6「LOAD DATA INFILE 構文」を参照してください。 -
エラーを無視します。たとえば、テキストファイルのテーブルが存在しない場合、残ったファイルの処理を続行します。
--force
がない場合は、テーブルが存在しないと mysqlimport は終了します。 -
--host=
,host_name
-h
host_name
指定されたホスト上の MySQL サーバーにデータをインポートします。デフォルトホストは
localhost
です。 -
--replace
オプションの説明を参照してください。 -
データファイルの最初の
N
行を無視します。 -
このオプションは
LOAD DATA INFILE
の対応する句と同じ意味を持っています。たとえば、復帰改行と改行のペアで終了する行を持つ Windows ファイルをインポートする場合、--lines-terminated-by="\r\n "
を使用してください。(コマンドインタプリタのエスケープ処理の規則によってはバックスラッシュを 2 つ使用しなければならない場合があります。)セクション13.2.6「LOAD DATA INFILE 構文」を参照してください。 -
クライアントホストから入力ファイルをローカルで読み取ります。
-
テキストファイルを処理する前に、すべてのテーブルを書き込み用にロックします。これにより、すべてのテーブルがサーバー上で同期していることが保証されます。
-
指名されたログインパスから
.mylogin.cnf
ログインファイルのオプションを読み取ります。「ログインパス」は、host
、user
、およびpassword
という限定されたオプションのセットのみを許可するオプショングループです。ログインパスは、サーバーホストおよびそのサーバーで認証するための認証情報を示す値のセットであると考えてください。ログインパスファイルを作成するには、mysql_config_editor ユーティリティーを使用します。セクション4.6.6「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください。このオプションは MySQL 5.6.6 で追加されました。 -
テーブルのロード時に
LOW_PRIORITY
を使用します。これは、テーブルレベルロックのみを使用するストレージエンジン (MyISAM
、MEMORY
、およびMERGE
) にのみ影響を与えます。 -
オプションファイルを読み取りません。オプションファイルから不明のオプションを読み取ることが原因でプログラムの起動に失敗する場合、
--no-defaults
を使用して、オプションを読み取らないようにできます。例外として、
.mylogin.cnf
ファイルは、存在する場合はすべての場合に読み取られます。これにより、--no-defaults
が使用された場合にも、コマンド行よりも安全な方法でパスワードを指定できます。(.mylogin.cnf
は mysql_config_editor ユーティリティーによって作成されます。セクション4.6.6「mysql_config_editor — MySQL 構成ユーティリティー」を参照してください)。 -
--password[=
,password
]-p[
password
]サーバーに接続する際に使用するパスワードです。短いオプション形式 (
-p
) を使用した場合は、オプションとパスワードの間にスペースを置くことはできません。コマンド行で、--password
オプションまたは-p
オプションに続けてpassword
の値を指定しなかった場合、mysqlimport はそれを要求します。コマンド行でのパスワード指定は、セキュアでないと考えるべきです。セクション6.1.2.1「パスワードセキュリティーのためのエンドユーザーガイドライン」を参照してください。オプションファイルを使用すれば、コマンド行でパスワードを指定することを回避できます。
-
Windows で、名前付きパイプを使用してサーバーに接続します。このオプションは、サーバーが名前付きパイプ接続をサポートしている場合にのみ適用されます。
-
プラグインを検索するディレクトリ。
--default-auth
オプションを使用して認証プラグインを指定したが、mysqlimport がそれを検出できない場合は、このオプションを指定しなければならない可能性があります。セクション6.3.7「プラガブル認証」を参照してください。このオプションは MySQL 5.6.2 で追加されました。
-
接続に使用する TCP/IP ポート番号。
-
プログラム名と、オプションファイルから受け取るすべてのオプションを出力します。
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
サーバーへの接続に使用する接続プロトコル。このオプションは、ほかの接続パラメータによって、必要なプロトコル以外のものが通常使用される場合に役立ちます。許可される値の詳細は、セクション4.2.2「MySQL サーバーへの接続」を参照してください。
-
--replace
オプションおよび--ignore
オプションは、既存の行の一意のキー値を重複させるような入力行の処理を制御します。--replace
を指定した場合、同じ一意のキー値を持つ既存の行は新しい行で置換されます。--ignore
を指定した場合、既存の行の一意のキー値を重複させる入力行はスキップされます。どちらのオプションも指定しなかった場合、重複するキー値が検出されるとエラーが発生し、残りのテキストファイルは無視されます。 -
古い (4.1 より前の) 形式でサーバーにパスワードを送信しません。これにより、新しいパスワード形式を使用するサーバー以外への接続を防ぎます。このオプションはデフォルトで有効です。無効にするには
--skip-secure-auth
を使用します。このオプションは MySQL 5.6.17 で追加されました。注記4.1 より前のハッシュ方式を使用するパスワードはネイティブのパスワードハッシュ方式を使用するパスワードよりもセキュアでないため、使用しないようにしてください。4.1 よりも前のパスワードは非推奨であり、これらのサポートは今後の MySQL リリースで削除される予定です。アカウントのアップグレード手順については、セクション6.3.8.3「4.1 よりも前のパスワードハッシュ方式と mysql_old_password プラグインからの移行」を参照してください。
-
--shared-memory-base-name=
name
Windows で、共有メモリーを使用して作成されるローカルサーバーへの接続の共有メモリー名。デフォルト値は
MYSQL
です。共有メモリー名では大文字と小文字を区別します。共有メモリー接続を可能にするには、サーバーは
--shared-memory
オプションで起動する必要があります。 -
サイレントモード。エラーが発生したときのみ出力を生成します。
-
localhost
への接続用に使用する、Unix ソケットファイル、または Windows では使用する名前付きパイプの名前。 -
--ssl
で始まるオプションは、SSL を使用してサーバーに接続することを許可するかどうかを指定し、SSL 鍵および証明書を検索する場所を指定します。セクション6.3.10.4「SSL コマンドのオプション」を参照してください。 -
--user=
,user_name
-u
user_name
サーバーへの接続時に使用する MySQL ユーザー名。
-
N
個のスレッドを使用して複数のファイルを並行してロードします。 -
冗長モード。プログラムの動作についてより多くの情報を出力します。
-
バージョン情報を表示して終了します。
mysqlimport の使用方法を表すサンプルのセッションを次に示します。
shell> mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
shell> ed
a
100 Max Sydow
101 Count Dracula
.
w imptest.txt
32
q
shell> od -c imptest.txt
0000000 1 0 0 \t M a x S y d o w \n 1 0
0000020 1 \t C o u n t D r a c u l a \n
0000040
shell> mysqlimport --local test imptest.txt
test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
shell> mysql -e 'SELECT * FROM imptest' test
+------+---------------+
| id | n |
+------+---------------+
| 100 | Max Sydow |
| 101 | Count Dracula |
+------+---------------+