Latest web development tutorials

MySQLのエクスポートデータ

MySQLはあなたが単純なテキストファイルにデータをエクスポートするためにSELECT ... INTO OUTFILE構文使用することができます


エクスポートデータにOUTFILE文INTO SELECTを使用し...

以下の例では、我々は/tmp/tutorials.txtファイルw3big_tblデータ・テーブルにデータをエクスポートします。

mysql> SELECT * FROM w3big_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 ... OUTFILEのINTOステートメント次のプロパティがあります。

  • LOAD DATA INFILE SELECTは... INTO OUTFILEは逆の操作、SELECT構文です。 、ファイル内のデータベースにデータを書き込むバックデータベースにファイルを読み込むために、SELECT ... INTO OUTFILEを使用し、LOAD DATA INFILEを使用するために。
  • SELECT行のOUTFILE 'file_nameは' SELECT ... INTO形式は、書き込みにファイルを選択することができます。 この構文を使用するには、FILE権限を持っている必要がありますように、ファイルは、サーバホスト上に作成されます。
  • 出力はすでに存在しているファイルではありません。 ファイルが改ざんされることからデータを防止します。
  • あなたは、ファイルを取得するには、ログインアカウントサーバを持っている必要があります。 それ以外の場合は任意の役割を果たしていますSELECT ... INTO OUTFILE。
  • ファイルが作成された後、UNIXでは、MySQLサーバーが所有している読み込み可能な権限です。 これは、ファイルを読み取ることができますが、削除することはないかもしれないことを意味します。

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

mysqldumpをmysqlのは、保存されているユーティリティ・データベースを有効にするために使用されます。 これは主に、必要なスクラッチように表のINSERTおよびCREATEからデータベースを再作成するコマンドを含むSQLスクリプトを生成します。

データをエクスポートするmysqldumpをを使用して、オブジェクトが書き込まれなければならない、エクスポート・ファイルで指定したディレクトリを指定する--tabオプションが必要です。

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

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

SQL形式のデータをエクスポート

指定されたファイル形式へのデータのエクスポートSQL、次のように:

$ mysqldump -u root -p w3big w3big_tbl > dump.txt
password ******

次のように上記のコマンドで作成されたコンテンツファイル:

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

--
-- Table structure for table `w3big_tbl`
--

CREATE TABLE w3big_tbl (
  w3big_id int(11) NOT NULL auto_increment,
  w3big_title varchar(100) NOT NULL default '',
  w3big_author varchar(40) NOT NULL default '',
  submission_date date default NULL,
  PRIMARY KEY  (w3big_id),
  UNIQUE KEY AUTHOR_INDEX (w3big_author)
) TYPE=MyISAM;

--
-- Dumping data for table `w3big_tbl`
--

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

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

$ mysqldump -u root -p w3big > 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 *****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</p>
$ mysqldump -u root -p database_name \
       | mysql -h other-host.com database_name

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