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
데이터 백업 및 복원 - 데이터 테이블 백업(스토리지 엔진 )