MySQL 최신 매뉴얼 튜토...login
MySQL 최신 매뉴얼 튜토리얼
작가:php.cn  업데이트 시간:2022-04-15 14:04:12

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 *****
다음 명령을 사용하여 내보낸 데이터를 원격 서버로 직접 가져올 수도 있지만 두 서버가 연결되어 있고 서로 액세스할 수 있는지 확인하세요. </p>
$ mysqldump -u root -p database_name \
       | mysql -h other-host.com database_name
위 명령은 파이프라인을 사용하여 내보낸 데이터를 지정된 원격 호스트로 가져옵니다.

추천 관련 비디오 튜토리얼:

  • 데이터 백업 및 복원 - 데이터 테이블 백업(스토리지 엔진 )

  • 데이터베이스 백업 및 복구