English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQLでは、以下を使用できますSELECT...INTO OUTFILE文を使用してデータをテキストファイルに簡単にエクスポートします。
以下の例では、データテーブル w3codebox_tbl データをエクスポートします /tmp/w3codebox.txt ファイル中:
mysql> SELECT * FROM w3codebox_tbl -> INTO OUTFILE '/tmp/w3codebox.txt';
データの出力形式を設定するコマンドオプションを使用して、以下の例ではCSV形式をエクスポートします:
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/w3codebox.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n';
以下の例では、各値がカンマで区切られたファイルが生成されます。この形式は多くのプログラムで使用できます。
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
LOAD DATA INFILEはSELECT ... INTO OUTFILEの逆操作、SELECT文法です。データベースのデータをファイルに書き込むためにはSELECT ... INTO OUTFILEを使用し、ファイルを読み戻すためにはLOAD DATA INFILEを使用します。
SELECT...INTO OUTFILE 'file_name'の形式のSELECTは、選択された行をファイルに書き込むことができます。このファイルはサーバーホスト上に作成されますので、この構文を使用するにはFILE権限が必要です。
出力は既存のファイルではありません。ファイルデータが改ざんされるのを防ぎます。
サーバーにログインするアカウントが必要です。さもなければ、SELECT ... INTO OUTFILEは何の効果もありません。
UNIXで、このファイルが作成された後は読み取り可能であり、権限はMySQLサーバーが持っています。これは、あなたがファイルを読み取ることができるが、削除できない可能性があることを意味します。
mysqldumpは、mysqlがデータベースをバックアップするためのユーティリティです。主に、データベースを再構築するために必要なコマンド(CREATE TABLE、INSERTなど)を含むSQLスクリプトを生成します。
mysqldumpを使用してデータをエクスポートするには、 --tab オプションを使用して、エクスポートファイルの指定されたディレクトリを指定します。このディレクトリは書き込み可能でなければなりません。
以下の例では、データテーブル w3codebox_tbl エクスポート /tmp ディレクトリ中:
$ mysqldump -u root -p --no-create-info \ --tab=/tmp w3codebox w3codebox_tbl password ******
指定されたファイルに SQL フォーマットのデータをエクスポートする方法:
$ mysqldump -u root -p w3codebox w3codebox_tbl > dump.txt password ******
以下のコマンドで作成されたファイルの内容は以下の通りです:
-- MySQL ダンプ 8.23 -- -- ホスト: localhost Database: w3codebox --------------------------------------------------------- -- サーバーバージョン 3.23.58 -- -- テーブル `w` の構造3codebox_tbl` -- CREATE TABLE w3codebox_tbl ( w3codebox_id int(11) NOT NULL auto_increment, w3codebox_title varchar(100) NOT NULL default '', w3codebox_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (w3codebox_id), UNIQUE KEY AUTHOR_INDEX (w3codebox_author) ) TYPE=MyISAM; -- -- テーブル `w` のデータをダンプしています3codebox_tbl` -- INSERT INTO w3codebox_tbl VALUES (1Learn PHP2007-05-24'); INSERT INTO w3codebox_tbl VALUES (2Learn MySQL2007-05-24'); INSERT INTO w3codebox_tbl VALUES (3JAVA チュートリアル2007-05-06');
データベース全体のデータをエクスポートする必要がある場合、以下のコマンドを使用できます:
$ mysqldump -u root -p w3codebox > database_dump.txt password ******
すべてのデータベースをバックアップする必要がある場合、以下のコマンドを使用できます:
$ mysqldump -u root -p --すべて-データベース > database_dump.txt password ******
--すべて-MySQLのdatabasesオプション 3.23.12 および以降のバージョンで追加。
この方法はデータベースのバックアップ戦略を実現するために使用できます。
データを他のMySQLサーバーにコピーする必要がある場合、mysqldumpコマンドでデータベース名およびテーブル名を指定できます。
以下のコマンドを実行して、データをdump.txtファイルにバックアップします:
$ mysqldump -u root -p database_name table_name > dump.txt password *****
完全なデータベースのバックアップを取得する場合、特定のテーブル名を使用する必要はありません。
データベースをMySQLサーバーにインポートするために、以下のコマンドを使用しますが、データベースが既に作成されていることを確認してください:
$ mysql -u root -p database_name < dump.txt password *****
エクスポートされたデータを直接リモートサーバーにインポートするための以下のコマンドを使用することもできますが、両サーバーが通信可能で相互にアクセスできることを確認してください:
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
以下のコマンドでは、エクスポートされたデータを指定されたリモートホストにインポートするためにパイプを使用しています。