Latest web development tutorials

MySQL의 데이터 내보내기

MySQL은 당신은 간단한 텍스트 파일로 데이터를 내보낼 OUTFILE 문 INTO ... SELECT를 사용할 수 있습니다.


사용 SELECT ... 수출 데이터에 OUTFILE 문 INTO

다음의 예는, 우리는 /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;

OUTFILE 문 SELECT ... INTO하면 다음과 같은 속성이 있습니다 :

  • OUTFILE INTO LOAD 데이터 INFILE SELECT ...는 역 동작, SELECT 구문입니다. 파일의 데이터베이스에 데이터를 기록하기 위해 다시 데이터베이스, 이용 LOAD 자료 INFILE에 파일을 읽어, OUTFILE ... INTO SELECT 사용한다.
  • SELECT 라인의 OUTFILE 'file_name을'INTO ... SELECT 형태는 쓰기에게 파일을 선택할 수 있습니다. 이 구문을 사용하는 FILE 권한이 있어야합니다 그래서 파일은 서버 호스트에서 생성됩니다.
  • 출력은 이미 존재하는 파일이 아닙니다. 변조되지 않도록 데이터 파일.
  • 당신은 파일을 검색 할 수있는 로그인 계정의 서버가 필요합니다. 그렇지 않으면 아무런 역할을하지 않습니다 SELECT ... INTO OUTFILE.
  • 파일을 만든 후 UNIX에서, MySQL 서버가 소유하고 읽을 수있는 권한입니다. 이 파일을 읽을 수 있지만 삭제되지 않을 수 있지만 것을 의미한다.

원래의 테이블로 데이터 내보내기

mysqldump는 mysql을 저장하는 유틸리티 데이터베이스를 설정하는 데 사용됩니다. 그것은 주로 필요한 스크래치 등 표 INSERT 및 CREATE에서 데이터베이스를 다시 작성하는 명령이 포함 된 SQL 스크립트를 생성합니다.

데이터 내보내기 파일에 지정된 디렉토리를 지정하는 --tab 옵션을 필요로 내보낼 mysqldump는을 사용하여 객체를 작성해야합니다.

다음 예제는 / ​​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-데이터베이스 옵션의 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

위의 명령은 지정된 원격 호스트로 데이터를 내보낼 파이프 라인에 사용된다.