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
위의 명령은 지정된 원격 호스트로 데이터를 내보낼 파이프 라인에 사용된다.