>데이터 베이스 >MySQL 튜토리얼 >`mysql` 및 `sed`를 사용하여 모든 MySQL 테이블을 CSV 파일로 대량 내보내기하려면 어떻게 해야 합니까?

`mysql` 및 `sed`를 사용하여 모든 MySQL 테이블을 CSV 파일로 대량 내보내기하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-11-30 03:35:15330검색

How Can I Bulk Export All MySQL Tables to CSV Files Using `mysql` and `sed`?

'mysqldump'를 사용한 대량 CSV 내보내기

MySQL 데이터 관리 영역에서 테이블 내용을 CSV 형식으로 내보내는 것은 중요한 작업일 수 있습니다 . 'mysqldump'는 데이터베이스 백업을 위한 강력한 유틸리티이지만 모든 테이블을 CSV로 독점적으로 내보내는 옵션이 없습니다. 이 기사에서는 'mysql'과 후처리의 조합을 사용하여 이를 수행하는 대체 접근 방식을 살펴봅니다.

'mysql'과 '-B' 매개변수

핵심 우리 솔루션 중 하나는 'mysql' 유틸리티의 '-B' 매개변수를 활용하는 것입니다. 이 매개변수는 프로그램이 탭으로 구분된 형식으로 결과를 표시하도록 지시합니다. 'sed'를 통해 출력을 파이핑하면 데이터를 추가로 조작하여 헤더가 있는 CSV 파일을 생성할 수 있습니다.

Bash Script Iteration

모든 테이블을 데이터베이스의 경우 Bash 스크립트를 활용하여 테이블 이름 목록을 반복할 수 있습니다. 한 가지 접근 방식은 다음 명령을 결합하는 것입니다.

mysql -u username -ppassword dbname -sN -e "SHOW TABLES;" | \
for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do
    mysql -B -u username -p password database -h dbhost -e "SELECT * FROM $tb;" \
    | sed “s/”/\””/g;s/'/\'/;s/\t/\”,\”/g;s/^/\”/;s/$/\”/;s/\n//g” > "$tb.csv"
done

이 스크립트는 먼저 'SHOW TABLES'를 사용하여 테이블 목록을 검색하고 이를 'tb' 변수에 저장합니다. 그런 다음 각 테이블 이름을 반복하고 '-B' 매개변수를 사용하여 'SELECT *' 쿼리를 실행합니다. 결과 출력은 'sed'에 의해 처리되어 테이블 이름을 딴 CSV 파일에 저장됩니다.

결론

'mysql의 '-B' 매개변수를 결합하여 ' 및 'sed' 사후 처리를 통해 MySQL 데이터베이스의 모든 테이블을 CSV 형식으로 효과적으로 내보낼 수 있습니다. 이 접근 방식은 'mysqldump'의 한계를 우회하고 출력 데이터 조작에 더 큰 유연성을 제공합니다.

위 내용은 `mysql` 및 `sed`를 사용하여 모든 MySQL 테이블을 CSV 파일로 대량 내보내기하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.