MySQL 데이터 내보내기
MySQL에서는 SELECT...INTO OUTFILE 문을 사용하여 간단히 데이터를 텍스트 파일로 내보낼 수 있습니다.
SELECT ... INTO OUTFILE 문을 사용하여 데이터 내보내기
다음 예에서는 tutorials_tbl 데이터 테이블의 데이터를 /tmp/tutorials.txt 파일로 내보냅니다.
mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt';
You 명령 옵션을 통해 지정된 데이터 출력 형식을 설정할 수 있습니다. 다음 예는 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 옵션을 사용하여 내보내기 파일에 지정된 디렉터리를 지정해야 합니다.
다음 예에서는 tutorials_tbl 데이터 테이블을 /tmp 디렉터리로 내보냅니다.$ mysqldump -u root -p --no-create-info \ --tab=/tmp TUTORIALS tutorials_tbl password ******
$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt password ******
-- MySQL dump 8.23 -- -- Host: localhost Database: TUTORIALS --------------------------------------------------------- -- Server version 3.23.58 -- -- Table structure for table `tutorials_tbl` -- CREATE TABLE tutorials_tbl ( tutorial_id int(11) NOT NULL auto_increment, tutorial_title varchar(100) NOT NULL default '', tutorial_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (tutorial_id), UNIQUE KEY AUTHOR_INDEX (tutorial_author) ) TYPE=MyISAM; -- -- Dumping data for table `tutorials_tbl` -- INSERT INTO tutorials_tbl VALUES (1,'Learn PHP','John Poul','2007-05-24'); INSERT INTO tutorials_tbl VALUES (2,'Learn MySQL','Abdul S','2007-05-24'); INSERT INTO tutorials_tbl VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');
$ mysqldump -u root -p TUTORIALS > 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 *****
다음 명령을 사용하여 데이터베이스가 생성되었는지 확인해야 합니다. 다음 명령을 사용하여 데이터를 원격 서버로 직접 가져올 수도 있지만 두 서버가 연결되어 있고 서로 액세스할 수 있는지 확인하세요.
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
【관련 추천】
1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드
위 내용은 MySQL에서 데이터를 내보내는 예제 튜토리얼 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!