ホームページ  >  記事  >  データベース  >  [mysql チュートリアル] MySQL エクスポート データ

[mysql チュートリアル] MySQL エクスポート データ

黄舟
黄舟オリジナル
2016-12-26 17:22:161111ブラウズ

MySQL データのエクスポート

MySQL では、SELECT...INTO OUTFILE ステートメントを使用して、データをテキスト ファイルに簡単にエクスポートできます。

SELECT ... INTO OUTFILE ステートメントを使用してデータをエクスポートします

次の例では、データ テーブルtutorials_tbl データを /tmp/tutorials.txt ファイルにエクスポートします:

mysql> SELECT * FROM tutorials_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 SELECT の 'file_name' 形式では、選択した行をファイルに書き込むことができます。ファイルはサーバー ホスト上に作成されるため、この構文を使用するには FILE 権限が必要です。

出力を既存のファイルにすることはできません。ファイルデータの改ざんを防止します。

ファイルを取得するには、サーバーにログインしているアカウントが必要です。それ以外の場合、SELECT ... INTO OUTFILE は効果がありません。

UNIX では、ファイルは作成後に読み取り可能になり、権限は MySQL サーバーによって所有されます。つまり、ファイルを読み取ることはできても、削除することはできない可能性があります。

テーブルを生データとしてエクスポート

mysqldump は、ストレージ データベースを転送するために mysql によって使用されるユーティリティです。主に、データベースを最初から再作成するために必要なコマンド CREATE TABLE INSERT などを含む SQL スクリプトを生成します。


mysqldump を使用してデータをエクスポートするには、--tab オプションを使用して、エクスポート ファイルで指定されたディレクトリを指定する必要があります。ターゲットは書き込み可能である必要があります。


次の例では、データ テーブルtutorials_tbl を /tmp ディレクトリにエクスポートします。

$ mysqldump -u root -p --no-create-info \
            --tab=/tmp TUTORIALS tutorials_tbl
password ******

SQL 形式でデータをエクスポートします。

以下に示すように、SQL 形式でデータを指定したファイルにエクスポートします。上記のコマンドで作成されたファイルは次のようになります:

$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******

データベース全体のデータをエクスポートする必要がある場合は、次のコマンドを使用できます:

-- MySQL dump 8.23
--
-- Host: localhost    Database: TUTORIALS
---------------------------------------------------------
-- Server version       3.23.58

--
-- Table structure for table `tutorials_tbl`
--

CREATE TABLE tutorials_tbl (
  tutorial_id int(11) NOT NULL auto_increment,
  tutorial_title varchar(100) NOT NULL default '',
  tutorial_author varchar(40) NOT NULL default '',
  submission_date date default NULL,
  PRIMARY KEY  (tutorial_id),
  UNIQUE KEY AUTHOR_INDEX (tutorial_author)
) TYPE=MyISAM;

--
-- Dumping data for table `tutorials_tbl`
--

INSERT INTO tutorials_tbl 
       VALUES (1,'Learn PHP','John Poul','2007-05-24');
INSERT INTO tutorials_tbl 
       VALUES (2,'Learn MySQL','Abdul S','2007-05-24');
INSERT INTO tutorials_tbl 
       VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

すべてのデータベースをバックアップする必要がある場合は、次のコマンドを使用できます:

$ mysqldump -u root -p TUTORIALS > database_dump.txt
password ******

MySQL 3.23.12 以降のバージョンの --all-databases オプションが追加されました。

この方法は、データベースのバックアップ戦略を実装するために使用できます。

データ テーブルとデータベースを他のホストにコピーする

データを他の MySQL サーバーにコピーする必要がある場合は、mysqldump コマンドでデータベース名とデータ テーブルを指定できます。

ソース ホストで次のコマンドを実行して、データを dump.txt ファイルにバックアップします。

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

データベースを完全にバックアップする場合は、特定のテーブル名を使用する必要はありません。

バックアップしたデータベースを MySQL サーバーにインポートする必要がある場合は、次のコマンドを使用できます。次のコマンドを使用してデータベースが作成されたことを確認する必要があります:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****
$ mysql -u root -p database_name < dump.txt
password *****

上記のコマンドではパイプラインが使用されています。エクスポートされたデータを指定されたリモートホストにインポートします。

上記は [mysql チュートリアル] MySQL エクスポート データの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) をご覧ください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。