MySQL エクスポート データ
MySQL エクスポート データ
MySQL では、SELECT...INTO OUTFILE ステートメントを使用して、データをテキスト ファイルに簡単にエクスポートできます。
SELECT ... INTO OUTFILE ステートメントを使用してデータをエクスポートします
次の例では、データ テーブル php_tbl データを /tmp/tutorials.txt ファイルにエクスポートします:
mysql> SELECT * FROM php_tbl -> INTO OUTFILE '/tmp/tutorials.txt';データの仕様を設定できますコマンド オプションによる出力 形式。次の例はエクスポート CSV 形式です。
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.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;SELECT ... INTO OUTFILE ステートメントには次の属性があります:
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 オプションを使用して、エクスポート ファイルで指定されたディレクトリを指定する必要があります。次の例では、データ テーブル php_tbl を /tmp ディレクトリにエクスポートします。
$ mysqldump -u root -p --no-create-info \ --tab=/tmp php php_tbl password ******
SQL 形式でデータをエクスポートします。
以下に示すように、指定したファイルにデータを SQL 形式でエクスポートします:
$ mysqldump -u root -p php php_tbl > dump.txt password ******上記のコマンド ファイルの内容は次のとおりです:
-- MySQL dump 8.23 -- -- Host: localhost Database: php --------------------------------------------------------- -- Server version 3.23.58 -- -- Table structure for table `php_tbl` -- CREATE TABLE php_tbl ( php_id int(11) NOT NULL auto_increment, php_title varchar(100) NOT NULL default '', php_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (php_id), UNIQUE KEY AUTHOR_INDEX (php_author) ) TYPE=MyISAM; -- -- Dumping data for table `php_tbl` -- INSERT INTO php_tbl VALUES (1,'Learn PHP','John Poul','2007-05-24'); INSERT INTO php_tbl VALUES (2,'Learn MySQL','Abdul S','2007-05-24'); INSERT INTO php_tbl VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');データベース全体のデータをエクスポートする必要がある場合は、次のコマンドを使用できます:
$ mysqldump -u root -p php > database_dump.txt password ******すべてのデータベースをバックアップする必要がある場合は、次のコマンドを使用できます:
$ mysqldump -u root -p --all-databases > database_dump.txt password ******--all-databases オプション MySQL 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 *****次のコマンドを使用することもできます。エクスポートされたデータをサーバー上のリモート サーバーに直接インポートしますが、2 つのサーバーが接続されており、相互にアクセスできることを確認してください: </p>
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
上記のコマンドはパイプラインを使用して、指定されたリモート ホストにデータをエクスポートします。
推奨ビデオ チュートリアル: