Linux MySQL 데이터베이스에서 데이터 파일을 내보내는 방법은 무엇입니까?csv 문 명령 내보내기

Linux MySQL 데이터베이스데이터 파일을 내보내는 방법?csv 문 명령 내보내기

MySQL의데이터 데이터 내보내기

MySQL에서는 다음을 사용할 수 있습니다.SELECT ... INTO OUTFILE단순히 데이터를 텍스트 파일로 내보내는 문.


SELECT ... INTO OUTFILE 문을 사용하여 데이터 내보내기

다음 예에서는 데이터 테이블을 /tmp/tutorials.txt 파일로 내보냅니다.

mysql > SELECT * FROM chenweiliang_tbl 
     - > INTO OUTFILE '/tmp/tutorials.txt' ;

명령 옵션을 통해 데이터 출력의 지정된 형식을 설정할 수 있습니다. 다음 예는 CSV 형식으로 내보내기 위한 것입니다.

mysql > SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.csv' - > 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 '''行
终止'\ 
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 서버가 소유합니다.즉, 파일을 읽을 수는 있지만 삭제할 수는 없습니다.

테이블을 원시 데이터로 내보내기

주로 데이터베이스를 처음부터 다시 만드는 데 필요한 CREATE TABLE INSERT 등의 명령을 포함하는 SQL 스크립트를 생성합니다.

mysqldump를 사용하여 데이터를 내보내려면 -tab 옵션을 사용하여 내보내기 파일에서 지정한 디렉터리를 지정해야 하며 대상이 쓰기 가능해야 합니다.

다음 예는 데이터 테이블 chenweiliang_tbl을 /tmp 디렉토리로 내보냅니다.

$ mysqldump - u root - p - no - create - info
             - tab = / tmp chenweiliang chenweiliang_tbl
密码******

SQL 형식으로 데이터 내보내기

다음과 같이 SQL 형식의 데이터를 지정된 파일로 내보냅니다.

$ mysqldump - u root - p chenweiliang chenweiliang_tbl > dump 文本 
密码******

위의 명령어로 생성된 파일의 내용은 다음과 같다.

- MySQL 转储8.23 - - 主机localhost     数据库chenweiliang
 ----------------------------------- ---------------------- - 服务器版本        3.23 58   

 
 

- - 结构`chenweiliang_tbl` -
 


CREATE TABLE chenweiliang_tbl 
  chenweiliang_id INT 11 NOT NULL的auto_increment 
  chenweiliang_title VARCHAR 100 NOT NULL 默认'' 
  chenweiliang_author VARCHAR 40 NOT NULL 默认'' 
  submission_date日期默认NULL 
  PRIMARY KEY   chenweiliang_id ),
  UNIQUE KEY AUTHOR_INDEX chenweiliang_author TYPE = MyISAM ;  


- - 转储数据`chenweiliang_tbl` -
 


INSERT INTO chenweiliang_tbl 
       VALUES 1 'Learn PHP' 'John Poul' '2007-05-24' );
INSERT INTO chenweiliang_tbl 
       VALUES 2 '学习MySQL' 'Abdul S' '2007-05-24' );
INSERT INTO chenweiliang_tbl 
       VALUES 3 'JAVA Tutorial' 'Sanjay' '2007-05-06' );

전체 데이터베이스의 데이터를 내보내야 하는 경우 다음 명령을 사용할 수 있습니다.

$ mysqldump - u root - p chenweiliang > database_dump 文本
密码******

모든 데이터베이스를 백업해야 하는 경우 다음 명령을 사용할 수 있습니다.

$ mysqldump - u root - p - all - databases > database_dump 文本
密码******

--all-databases 옵션은 MySQL 3.23.12 이상에서 추가되었습니다.

이 방법은 데이터베이스 백업 전략을 구현하는 데 사용할 수 있습니다.


데이터 테이블 및 데이터베이스를 다른 호스트에 복사

데이터를 다른 MySQL 서버로 복사해야 하는 경우 mysqldump 명령에서 데이터베이스 이름과 테이블을 지정할 수 있습니다.

소스 호스트에서 다음 명령을 실행하여 데이터를 dump.txt 파일에 백업합니다.

$ mysqldump - u root - p database_name table_name > dump 文本 
密码*****

데이터베이스 전체를 백업하는 경우 특정 테이블 이름을 사용할 필요가 없습니다.

백업 데이터베이스를 MySQL 서버로 가져와야 하는 경우 다음 명령을 사용하여 데이터베이스가 생성되었는지 확인해야 합니다.

$ mysql - u root - p database_name < dump 文本 
密码*****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</ p > 
$ mysqldump的- ü根- p DATABASE_NAME \
        | mysql - h other - host com database_name

위의 명령은 파이프를 사용하여 내보낸 데이터를 지정된 원격 호스트로 가져옵니다.

희망 첸 웨이량 블로그( https://www.chenweiliang.com/ ) 공유 "Linux MySQL 데이터베이스에서 데이터 파일을 내보내는 방법은 무엇입니까?csv 문 명령 내보내기"가 도움이 됩니다.

이 기사의 링크를 공유하는 것을 환영합니다:https://www.chenweiliang.com/cwl-501.html

더 많은 숨겨진 트릭을 알아보려면🔑 Telegram 채널에 가입하세요!

마음에 드셨다면 공유하고 좋아요를 눌러주세요! 여러분의 공유와 좋아요는 저희의 지속적인 원동력이 됩니다!

 

发表 评论

귀하의 이메일 주소는 공개되지 않습니다. 必填 项 已 用 * 标注

위쪽으로 스크롤