トップページ > MySQL関連 > mysqldumpコマンド
カテゴリー
オラクルエンジニア通信
サポートページ
マニュアルページ
ソフトウェアダウンロード
中古UNIXマシン購入
blogs.sun.com
お勧めサイト
プライベートリンク

mysqldumpコマンド

mysqldumpコマンドはバックアップや他のSQLサーバ(MySQLサーバに限りません)への転送のためにデータベースやデータベースのコレクションのダンプで使用します。ダンプには一般に、テーブルの作成やそこでのデータ配置、の片方または両方のSQLステートメントが含まれています。また、mysqldumpはCSVや他の区切り文字のテキスト、あるいはXMLフォーマットでファイルを生成させるために利用することもできます。

mysqldumpは次のオプションをサポートします。

--help, -?
 ヘルプ メッセージを表示し、閉じます。 

--add-drop-database 
 DROP DATABASEステートメントをCREATE DATABASEステートメントの前に追加します。 

--add-drop-table 
 DROP TABLEステートメントをCREATE TABLEステートメントの前に追加します。 

--add-locks 
 LOCK TABLESとUNLOCK TABLESステートメントで各テーブルダンプを囲みます。
 ダンプファイルを再ロードする際のインサートの速度が向上します。

--all-databases, -A 
 すべてのデータベース内のすべてのテーブルをダンプします。
 これは--databasesオプションを使用してコマンドラインですべてのデータベース名を指定するのと同じです。 

--all-tablespaces, -Y 
 テーブルダンプに、NDB Clusterテーブルに使用されるテーブルスペース作成に必要なSQLステートメントを追加します。
 このように指定しなければ、この情報はmysqldumpの出力には含まれていません。
 このオプションは、現在MySQLクラスタテーブルに対してのみ有効です。 
 このオプションはMySQL 5.1.6.で加されました。 

--allow-keywords 
 キーワードであるカラム名の作成を許容します。
 これは各カラム名のプリフィクスにテーブル名を用いることで可能になります。 

--character-sets-dir=path 
 キャラクタ セットがインストールされるディレクトリです。
 
--comments, -i 
 プログラムバージョン、サーババージョンやホストといった追加情報をダンプファイルに書き込みます。
 このオプションはデフォルトで有効となっています。
 追加情報を抑制するには、--skip-commentsを使用してください。 

--compact 
 verbose生成を少なくします。
 このオプションはコメントを抑制し、以下のオプションを有効化します。
 --skip-add-drop-table
 --no-set-names
 --skip-disable-keys
 --skip-add-locks

--compatible=name 
 古いMySQLサーバや他のデータベースシステムと互換性のある出力を生成します。

--complete-insert, -c 
 カラム名を含んだ、完全なINSERTステートメントを使用します。 

--compress, -C 
 双方が圧縮をサポートしている場合、クライアント・サーバ間で行きかう情報を全て圧縮します。 

--create-options 
 MySQL独特のオプションをCREATE TABLEステートメントに含みます。 

--databases, -B 
 複数のデータベースをダンプします。
 通常、mysqldumpはコマンドライン上の最初のアーギュメント名とそれに続く名をテーブル名として認識します。
 このオプションを使用するうことで、名前のついたアーギュメントを全てデータベース名として認識します。
 CREATE DATABASEやUSEステートメントは新しいデータベースの前の出力に含まれています。 

--debug[=debug_options], -# [debug_options] 
 デバッグのログを書き込みます。
 debug_options文字列は大抵'd:t:o,file_name'になります。
 .'d:t:o,/tmp/mysqladmin.trace'がデフォルトになります。 

--default-character-set=charset_name 
 charset_nameをデフォルトキャラクタセットとして使用します。
 文字列が特定されていない場合、mysqldumpはutf8を使用します。 

--delayed-insert 
 INSERTステートメントよりもINSERT DELAYEDステートメントを書き出します。 

--delete-master-logs 
 マスタ複製サーバで、ダンプを実行後バイナリログを消去します。
 このオプションは自動的に--master-dataを有効化します。 

--events, -E 
 ダンプされたデータベースからイベントをダンプします。
 このオプションはMySQL 5.1.8.で追加されました。 

--extended-insert, -e 
 複数のVALUESリストを含む、複数行INSERT構文を使用してください。
 これにより、ダンプファイルサイズを小さくし、ファイルが再ロードされる際の挿入スピードがあがります。 

--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
 これらのオプションは-Tオプションと共に使用され、LOAD DATA INFILEに対応する節と同じ意味があります。
 
--first-slave, -x 
 Deprecated.現在は--lock-all-tablesと名づけられています。 

--flush-logs, -F 
 ダンプを始める前にMySQLサーバログファイルをフラッシュします。

--flush-privileges 
 mysqlデータベースのダンプ後、FLUSH PRIVILEGESステートメントを発行してください。
 このオプションはダンプにmysqlデータベースが含まれている場合と、
 正しいリストアのためにmysqlデータベース内に含まれているデータに依存するデータベースが含まれている場合に使用するべきです。
 このオプションはMySQL 5.1.12.で追加されました。 

--force, -f 
 テーブルダンプの最中にSQLエラーが発生しても続行します。 

--host=host_name, -h host_name 
 与えられたホスト上でMySQLサーバからデータをダンプします。
 デフォルト設定では、localhostがホストになります。 

--hex-blob 
 16進変換表記法を使用しているバイナリカラムをダンプします(例えば、'abc'は0x616263となります)。
 影響を受けるデータタイプはBINARY、VARBINARY、BLOB、そしてBITになります。 

--ignore-table=db_name.tbl_name 
 データベースとテーブル名の両方を使用して特定されなければいけないテーブルをダンプしないでください。
 複数テーブルを無視するには、このオプションを複数回使用してください。 

--insert-ignore 
 INSERTステートメントをIGNOREオプションで書いてください。 

--lines-terminated-by=... 
 これらのオプションは-Tオプションと共に使用され、LOAD DATA INFILEに対応する節と同じ意味があります。

--lock-all-tables, -x 
 データベース内のテーブルを全てロックします。
 これは全ダンプの期間、グローバルリードロックを取得することで達成されます。
 このオプションは自動的に--single-transactionと--lock-tablesをオフにします。 

--lock-tables, -l 
 ダンプする前に全てのテーブルをロックします。
 テーブルはREAD LOCALでロックされ、これによりMyISAMテーブルの場合同時インサートが許容されます。

--master-data[=value] 
 出力にバイナリログファイル名とポジションを書きます。
 このオプションはRELOAD権限を要求し、バイナリログが有効化されていなければいけません。

--no-autocommit 
 各ダンプされたテーブルごとにINSERTステートメントをSET AUTOCOMMIT=0とCOMMIT ステートメントで囲みます。 

--no-create-db, -n 
 このオプションは--databasesや--all-databasesオプションが提供されていた場合出力に含まれるCREATE DATABASEステートメントを抑制します。 

--no-create-info, -t 
 各ダンプされたテーブルを再作成するCREATE TABLEステートメントを書かないでください。 

--no-data, -d 
 テーブル行情報を書かないでください(つまりテーブル内容をダンプしないでください)。
 これはテーブルのCREATE TABLEステートメントのみをダンプしたい場合に非常に便利です。 

--opt 
 このオプションは省略用です。
 以下のオプションを指定することと同じです。
 --add-drop-table
 --add-locks
 --create-options
 --disable-keys
 --extended-insert
 --lock-tables
 --quick
 --set-charset
 デフォルトで有効になっています。

--order-by-primary 
 各テーブルの行をプライマリキーか、存在する場合、最初のユニークインデックスでソートします。
 これは、InnoDBテーブルにロードするMyISAMテーブルをダンプしているときに便利ですが、
 ダンプに要する時間がかなり伸びます。 

--password[=password], -p[password] 
 サーバに接続する際使用するパスワードです。
 ショートオプションフォーム(-p)を使用した場合、オプションとパスワードの間にスペースを置くことはできません。

--port=port_num, -P port_num 
 コネクションに使用するTCP/IPポート番号です。 

--protocol={TCP|SOCKET|PIPE|MEMORY} 
 使用するべき接続プロトコルです。 

--quick, -q 
 このオプションは大きなテーブルのダンプに便利です。
 これにより、mysqldumpは全結果セットを取得、メモリ内でバッファ後表示といった
 一連の作業を一気にこなさず、サーバから1行ずつ結果を取得します。 

--quote-names, -Q 
 ‘`’文字でデータベース、テーブル、そしてカラム名をクオートします。
 ANSI_QUOTESSQLモードが有効化されている場合、名前は‘"’キャラクタでクオートされます。
 このオプションはデフォルトで有効となっています。

--replace 
 INSERTステートメントよりもREPLACEステートメントを書き出します。
 MySQL 5.1.3.より提供されています。 

--result-file=file, -r file 
 指定したファイルに出力します。
 このオプションはWindows上で‘\n’ニューライン文字が‘\r\n’carriage return/newlineシーケンスに変換されるのを阻止するために使用します。
 ダンプ生成中にエラーが発生しても、結果ファイルは作成され、内容は上書きされます。

--routines, -R 
 記憶されたルーチンを(関数とプロシージャ) ダンプされたデータベースからダンプします。

--set-charset 
 出力にSET NAMES default_character_setを追加してください。
 このオプションはデフォルトで有効となっています。
 SET NAMESステートメントを抑制するには、--skip-set-charsetを使用してください。 

--single-transaction 
 このオプションはサーバからデータをダンプする前にBEGIN SQLステートメントを発行します。
 InnoDBといったトランザクションテーブルに対してのみ便利です。

--skip-opt 
 --optオプションの詳細を参照してください。 

--socket=path, -S path 
 localhostの接続用に使用する、ユニックスではソケットファイル、Windowsでは使用する名づけられたパイプ。 

--skip-comments 
 --commentsオプションの詳細を参照してください。 

--ssl* 
 --sslで始まるオプションは、SSLを介してサーバに接続し、
 SSL キーや証明の場所を明示するか否かを指定します。

--tab=path, -T path 
 タブによって分けられたデータファイルを生成します。

--tables 
 --databasesあるいは-Bオプションをオーバーライドしてます。
 mysqldumpはこのオプションに続く名前アーギュメントをテーブル名として認識します。 

--triggers 
 ダンプされたテーブルごとにトリガをダンプします。
 このオプションはデフォルトで有効化されています。
 --skip-triggersを使用して無効化してください。 

--tz-utc 
 ダンプファイルにSET TIME_ZONE='+00:00'を追加してください。
 これにより、TIMESTAMPカラムは異なるタイムゾーンにあるサーバ間でダンプ・再ロードされます。
 このオプションなしでは、TIMESTAMPカラムはソースとデスティネーションサーバのタイムゾーンにダンプ・再ロードされ、値が変わる場合があります。
 --tz-utcはサマータイムによる時間の変更に対してもプロテクトします。
 --tz-utcはデフォルトで有効化されています。
 無効化するには、--skip-tz-utcを使用してください。
 このオプションはMySQL 5.1.2.で追加されました。 

--user=user_name, -u user_name 
 サーバに接続する際使用するMySQLユーザ名です。 

--verbose, -v 
 Verbose モードプログラムの動作についてさらに情報を表示します。 

--version, -V 
 バージョン情報を表示します。 

--where='where_condition', -w 'where_condition' 
 あるWHERE状態に選択された行のみダンプします。
 ユーザのコマンドインタープリタにとって特別なキャラクタ、もしくはスペースを含んでいる場合、
 状態の周りをクオートで囲まなければいけません。

--xml, -X 
 XMLを書き出します。

オラクルユニバーシティSolaris系技術トレーニング一覧

Solarisお勧め書籍

Solaris 11.2 システムハンドブック
Oracle Solaris 11 試験対策本(OCA)