Mysql-database-export
MySQL-データベースのエクスポート
テーブルデータをテキストファイルにエクスポートする最も簡単な方法は、クエリ結果をサーバーホスト上のファイルに直接エクスポートする SELECT … INTO OUTFILE ステートメントを使用することです。
SELECTを使用したデータのエクスポート… INTO OUTFILEステートメント
このステートメントの構文は、通常の SELECT コマンドと INTO OUTFILE filename を最後に組み合わせます。 デフォルトの出力形式は、LOAD DATAコマンドの場合と同じです。 そのため、次のステートメントは tutorials_tbl テーブルを /tmp/tutorials.txt にタブ区切りの改行で終了したファイルとしてエクスポートします。
さまざまなオプションを使用して出力形式を変更し、列とレコードを引用および区切る方法を指定できます。 CRLFで終了する行を含むCSV形式でtutorial_tblテーブルをエクスポートするには、次のコードを使用します。
生データとしてのテーブルのエクスポート
テーブルをデータファイルとしてダンプするには、MySQLサーバーがファイルを書き込むディレクトリを示す*-tab *オプションを指定する必要があります。
たとえば、 tutorials_tbl テーブルを TUTORIALS データベースから /tmp ディレクトリのファイルにダンプするには、以下に示すコマンドを使用します。
テーブルの内容または定義をSQL形式でエクスポートする
テーブルをSQL形式でファイルにエクスポートするには、以下に示すコマンドを使用します。
これにより、次のようなコンテンツを持つファイルが作成されます。
複数のテーブルをダンプするには、それらすべてにデータベース名引数を続けて名前を付けます。 データベース全体をダンプするには、次のコードブロックに示すように、データベースにちなんでテーブルに名前を付けないでください。
ホストで使用可能なすべてのデータベースをバックアップするには、次のコードを使用します。
--all-databasesオプションは、MySQL 3.23.12バージョンで使用できます。 この方法は、データベースのバックアップ戦略を実装するために使用できます。
テーブルまたはデータベースを別のホストにコピーする
あるMySQLサーバーから別のMySQLサーバーにテーブルまたはデータベースをコピーする場合は、データベース名とテーブル名で mysqldump を使用します。
ソースホストで次のコマンドを実行します。 これにより、データベース全体が dump.txt ファイルにダンプされます。
上記で説明したように、特定のテーブル名を使用せずにデータベース全体をコピーできます。
次に、別のホストでdump.txtファイルをftpし、次のコマンドを使用します。 このコマンドを実行する前に、宛先サーバーにdatabase_nameを作成したことを確認してください。
中間ファイルを使用せずにこれを達成する別の方法は、mysqldumpの出力をネットワーク経由でリモートMySQLサーバーに直接送信することです。 ソースデータベースが存在するホストから両方のサーバーに接続できる場合は、次のコマンドを使用します(両方のサーバーにアクセスできることを確認してください)。
mysqldumpでは、コマンドの半分がローカルサーバーに接続し、ダンプ出力をパイプに書き込みます。 コマンドの残りの半分は、other-host.com上のリモートMySQLサーバーに接続します。 入力用のパイプを読み取り、各ステートメントをother-host.comサーバーに送信します。