이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 18434|회답: 2

[출처] MySQL은 mysqldump를 사용하여 조건이 포함된 데이터를 내보내기도 합니다

[링크 복사]
게시됨 2019. 4. 26. 오후 4:07:23 | | | |

MySQL 데이터베이스 백업 및 내보내기
https://www.itsvse.com/thread-4004-1-1.html
(출처: Architect_Programmer)
mysqldump는 데이터베이스 요약을 가져오기 및 내보내기
https://www.itsvse.com/thread-4353-1-1.html
(출처: Architect_Programmer)
mysqldump exports database "access denied"
https://www.itsvse.com/thread-4005-1-1.html
(출처: Architect_Programmer)

위 링크에서 보듯이, 전체 데이터베이스 콘텐츠가 내보내지는데, 조건을 가지고 내보낼 수 있나요? 물론 너는 할 수 있어!


명령:

매개변수 분석:

  • -h: 데이터베이스 주소를 지정하세요
  • --port: 데이터베이스 포트를 지정하세요. 기본 포트 3306이라면 생략할 수 있습니다
  • -U: 계좌번호
  • -p: 비밀번호
  • db_name: 어떤 데이터베이스를 내보낼 것인지를 의미합니다
  • tab_name: 어떤 테이블을 내보내야 하는지를 의미합니다
  • --여기서: 데이터 필터 기준
  • --no-create-info: CREATE TABLE 문은 추가하지 않고 데이터만 내보내기.


마지막에 저장 공간을 내보내야 할 위치까지 경로를 따라가세요.

설명:

-t: 가이드 데이터만요

--여기서 조건

--triggers=false: 트리거를 안내하지 마세요

--replace: INSERT INT를 REPLACE INT로 교체합니다



조건:

--모든 데이터베이스, -A

모든 데이터베이스를 내보내세요.

mysqldump -uroot -p --all-databases

--모든 테이블 공간, -Y

모든 테이블스페이스를 내보내세요.

mysqldump -uroot -p --all-databases --all-tablespaces

--테이블 공간이 없으면 , -y

테이블스페이스 정보는 내보내지 않습니다.

mysqldump -uroot -p --all-databases --no-tablespaces

--데이터베이스 추가-삭제

각 데이터베이스를 만들기 전에 데이터베이스 문장을 추가하세요.

mysqldump -uroot -p --all-databases --add-drop-database

--추가-드롭-테이블

각 데이터 테이블을 만들기 전에 드롭 테이블 문장을 추가하세요. (기본값이 열려 있으니 --skip-add-drop-table을 사용해 취소 옵션)

mysqldump -uroot -p --all-databases (기본적으로 drop 문만 추가)

mysqldump -uroot -p --all-databases –skip-add-drop-table (undrop 문)

--잠금 장치

각 테이블을 내보내기 전에 LOCK TABLE을 추가하고, 그 후에 UNLOCK TABLE을 추가하세요. (기본값이 켜져 있으니 --skip-add-locks 옵션을 사용해 취소 옵션)

mysqldump -uroot -p --all-databases (기본적으로 LOCK 문이 추가됨)

mysqldump -uroot -p --all-databases –skip-add-locks (unlock statement)

--allow-키워드

키워드로 된 열명을 생성할 수 있습니다. 이는 각 열명 앞에 테이블 이름을 접두사로 붙여 처리합니다.

mysqldump -uroot -p --all-databases --allow-keywords

--적용 슬레이브 문장

내보내기 끝에 'CHANGE MASTER' 전에 'STOP SLAVE'를, 'START SLAVE'를 추가하세요.

mysqldump -uroot -p --all-databases --apply-slave-statements

--character-sets-dir

문자 집합 파일 디렉터리

mysqldump -uroot -p --all-databases --character-sets-dir=/usr/local/mysql/share/mysql/charsets

--댓글

추가 주석 정보. 기본적으로 켜져 있으며, --skip-comments로 취소할 수 있습니다

mysqldump -uroot -p --all-databases (기본 레코드 주석)

mysqldump -uroot -p --all-databases --skip-comments (uncomment)

--호환

내보내는 데이터는 다른 데이터베이스나 구버전 MySQL과 호환됩니다. 값은 ANSI, MySQL323, MySQL40, PostgreSQL, Oracle, MSSQL, DB2, MaxDB, no_key_options, no_tables_options, no_field_options 등이 될 수 있습니다.

여러 값을 사용할 때는 쉼표로 간격을 두세요. 완전히 호환된다는 보장은 없지만 가능한 한 많이 맞춰야 합니다.

mysqldump -uroot -p --all-databases --compatible=ansi

--컴팩트

디버깅을 위해 출력 정보를 덜 내보내세요. 주석이나 앞뒤 같은 구조를 제거하세요. 옵션은 다음과 같습니다: --skip-add-drop-table --skip-add-locks --skip-comments --skip-disable-keys

mysqldump -uroot -p --all-databases --compact

--완전 삽입, -c

전체 삽입문(열명 포함)을 사용하세요. 이로 인해 삽입 효율이 향상될 수 있지만, max_allowed_packet 매개변수에 의해 영향을 받아 삽입 실패가 발생할 수 있습니다.

mysqldump -uroot -p --all-databases --complete-insert

--압축, -C

클라이언트와 서버 간에 모든 정보를 전달하기 위해 압축 기능을 활성화합니다

mysqldump -uroot -p --all-databases --compress

--생성 옵션, -a

CREATE TABLE 문에 모든 MySQL 기능 옵션을 포함하세요. (기본값이 켜져 있습니다)

mysqldump -uroot -p --all-databases

--데이터베이스, -B

여러 데이터베이스를 내보내세요. 매개변수 뒤에 오는 모든 이름 매개변수는 데이터베이스 이름으로 처리됩니다.

mysqldump -uroot -p --databases test mySQL

--디버그

디버깅을 위한 디버그 정보를 출력합니다. 기본 값은 d:t:o,/tmp/mysqldump.trace입니다

mysqldump -uroot -p --all-databases --debug

mysqldump -uroot -p --all-databases --debug=" d:t:o,/tmp/debug.trace"

--디버그-체크

메모리 확인과 파일 열기 명령어를 확인한 후 종료하세요.

mysqldump -uroot -p --all-databases --debug-check

--디버그-정보

디버그 정보를 출력하고 종료합니다

mysqldump -uroot -p --all-databases --debug-info

--기본 문자 집합

기본 문자 세트를 설정하세요. 기본값은 utf8입니다

mysqldump -uroot -p --all-databases --default-character-set=latin1

--지연 삽입

데이터 내보내기 지연 삽입

mysqldump -uroot -p --all-databases --delayed-insert

--마스터 로그를 삭제

마스터 백업은 로그를 삭제합니다. 이 매개변수는 자동으로 ---master-data를 활성화합니다.

mysqldump -uroot -p --all-databases --delete-master-logs

--비활성화-키

각 테이블에 대해 /*!40000 ALTER TABLE tbl_name DISABLE KEYS */를 사용하세요; 그리고 /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; 이 문장은 INSERT 문장을 참조합니다. 이 방법은 모든 행을 삽입한 후 인덱스를 생성하여 덤프 파일을 더 빠르게 가져올 수 있게 해줍니다. 이 옵션은 MyISAM 테이블에서만 제공되며, 기본적으로 오픈 상태가 됩니다.

mysqldump -uroot -p --all-databases

--쓰레기 노예

이 옵션을 사용하면 내보내진 데이터가 첨부된 파일에 메인 빈로그 위치와 파일 이름이 추가됩니다. 1로 설정하면 CHANGE MASTER 명령어를 사용하여 데이터 파일에 출력합니다. 2로 설정하면 명령어 앞에 설명 정보를 추가하세요. 이 옵션은 --single-트랜잭션이 지정되지 않는 한 --lock-all-tables를 켭니다. 이 옵션은 --lock-tables 옵션을 자동으로 끕니다. 기본 값은 0입니다.

mysqldump -uroot -p --all-databases --dump-slave=1

mysqldump -uroot -p --all-databases --dump-slave=2

--이벤트, -E

수출 이벤트.

mysqldump -uroot -p --all-databases --events

--확장-삽입, -e

INSERT 문법을 여러 개의 VALUES 열로 사용하세요. 이렇게 하면 내보내기 작업이 작아지고 가져오기 속도가 빨라집니다. 기본 열린 상태이고, --skip-extended-insert 옵션을 사용해 취소하세요.

mysqldump -uroot -p --all-databases

mysqldump -uroot -p --all-databases--skip-extended-insert (unoption)

--필드-종료-by

내보내기 파일에 주어진 필드는 무시하세요. --tab 옵션과 함께 사용되며, --databases나 --all-databases 옵션에는 사용되지 않습니다

mysqldump -uroot -p test test --tab="/home/mysql" --fields-terminated-by="#"

--필드-둘러싸-by

출력 파일 내 개별 필드는 주어진 문자들로 감싸집니다. --tab 옵션과 함께 사용되며, --databases나 --all-databases 옵션에는 사용되지 않습니다

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#"

--필드-선택적으로 포함-

출력 파일의 필드는 주어진 문자로 선택적으로 랩됩니다. --tab 옵션과 함께 사용되며, --databases나 --all-databases 옵션에는 사용되지 않습니다

mysqldump -uroot -p test test --tab="/home/mysql" --fields-enclosed-by="#" --fields-optionally-enclosed-by ="#"

--필드-에스케이프-바이

출력 파일의 개별 필드는 주어진 문자를 무시합니다. --tab 옵션과 함께 사용되며, --databases나 --all-databases 옵션에는 사용되지 않습니다

mysqldump -uroot -p mysql user --tab="/home/mysql" --fields-escaped-by="#"

--플러시 로그스

내보내기 시작하기 전에 로그를 새로고침하세요.

참고: 여러 데이터베이스를 한 번에 내보내면(--databases 또는 --all-databases 옵션을 사용), 로그는 데이터베이스별로 새로고침됩니다. --lock-all-tables 또는 --master-data를 사용하는 경우를 제외하고는요. 이 경우 로그는 한 번 새로고침되고 해당 테이블도 동시에 잠깁니다. 따라서 로그를 내보내고 플러시할 계획이라면 --lock-all-tables 또는 --master-data와 --flush-logs를 사용해야 합니다.

mysqldump -uroot -p --all-databases --flush-logs

--플러시 특권

mysql 데이터베이스를 내보내고 나서 FLUSH PRIVILEGES 문장을 발행하세요. 적절한 복구를 위해서는 MySQL 데이터베이스와 의존 MySQL 데이터베이스 데이터를 언제든지 내보낼 때 이 옵션을 사용해야 합니다.

mysqldump -uroot -p --all-databases --flush-privileges

--힘

내보내기 중에 발생하는 SQL 오류는 무시하세요.

mysqldump -uroot -p --all-databases --force

--도움말

도움말 정보를 표시하고 나가세요.

mysqldump --도움말

--육각형 덩어리

16진 형식으로 이진 문자열 필드를 내보내세요. 이 옵션은 이진 데이터가 있을 경우 반드시 사용해야 합니다. 영향을 받는 필드 유형은 BINARY, VARBINARY, BLOB입니다.

mysqldump -uroot -p --all-databases --hex-blob

--호스트, -h

내보내야 할 호스트 정보

mysqldump -uroot -p --host=localhost --all-databases

--무시-테이블

지정된 표는 내보내지 않습니다. 여러 테이블을 무시할 때는 한 번에 한 테이블씩 여러 번 반복해야 합니다. 각 테이블은 데이터베이스와 테이블 이름을 모두 지정해야 합니다. 예를 들어: --ignore-table=database.table1 --ignore-table=database.table2 ......

mysqldump -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

--include-master-host-port

'CHANGE MASTER TO..' 생성: --dump-slave 명제에 'MASTER_HOST=<host>,MASTER_PORT=<port>'를 추가한다  

mysqldump -uroot -p --host=localhost --all-databases --include-master-host-port

--삽입-무시하기

줄을 삽입할 때 INSERT IGNORE 문장을 사용하세요.

mysqldump -uroot -p --host=localhost --all-databases --insert-ignore

--선-종료-by

출력 파일의 각 줄은 주어진 문자열로 나누어집니다. --tab 옵션과 함께 사용되며, --databases나 --all-databases 옵션에는 사용하지 않습니다.

mysqldump -uroot -p --host=localhost test test --tab="/tmp/mysql" --lines-terminated-by="##"

--모든 테이블 잠금, -x

모든 데이터베이스의 모든 테이블을 잠금하여 데이터 일관성을 확보하세요. 이것은 전역 읽기 잠금이며, --single-트랜잭션과 --lock-테이블 옵션은 자동으로 꺼집니다.

mysqldump -uroot -p --host=localhost --all-databases --lock-all-tables

--락테이블, -l

내보내기 시작하기 전에 모든 테이블을 잠가세요. READ LOCAL으로 테이블을 잠그면 MyISAM 테이블이 병렬로 삽입될 수 있습니다. InnoDB와 BDB처럼 트랜잭션을 지원하는 테이블에는 단일 트랜잭션이 더 나은 선택,--테이블을 전혀 고정할 필요가 없기 때문입니다.

여러 데이터베이스를 내보낼 때,-- 락테이블은 각 데이터베이스별로 테이블을 개별적으로 잠깁니다. 따라서 이 옵션은 내보낸 파일 내 테이블의 데이터베이스 간 논리적 일관성을 보장하지 않습니다. 서로 다른 데이터베이스 테이블의 내보내기 상태는 완전히 다를 수 있습니다.

mysqldump -uroot -p --host=localhost --all-databases --lock-tables

--로그 오류

주어진 파일에 경고와 오류 메시지를 첨부하세요

mysqldump -uroot -p --host=localhost --all-databases --log-error=/tmp/mysqldump_error_log.err

--마스터-데이터

이 옵션은 binlog의 위치와 파일 이름을 출력 파일에 덧붙입니다. 1이면 CHANGE MASTER 명령어가 출력됩니다; 2라면 출력 CHANGE MASTER 명령 전에 주석을 추가하세요. 옵션은 --single-트랜잭션도 명시되지 않는 한 --lock-all-tables 옵션을 켭니다(이 경우 내보내기가 시작될 때 글로벌 리드 락은 짧은 시간을 가집니다; 다른 내용은 아래 --단일 거래 옵션을 참고해 주세요. 이 옵션은 자동으로 꺼집니다 --lock-tables 옵션.

mysqldump -uroot -p --host=localhost --all-databases --master-data=1;

mysqldump -uroot -p --host=localhost --all-databases --master-data=2;

--max_allowed_packet

서버가 전송하고 수락한 최대 패킷 길이입니다.

mysqldump -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

--net_buffer_length

TCP/IP 및 소켓 연결의 캐시 크기.

mysqldump -uroot -p --host=localhost --all-databases --net_buffer_length=1024

--자동 커밋 없음

autocommit/commit 문으로 테이블을 랩하세요.

mysqldump -uroot -p --host=localhost --all-databases --no-autocommit

--no-create-db, -n

CREATE DATABASE 문은 추가하지 않고 데이터를 내보내기만 하면 됩니다.

mysqldump -uroot -p --host=localhost --all-databases --no-create-db

--정보 만들지 않고, -t

CREATE TABLE 문은 추가하지 않고 데이터만 내보내세요.

mysqldump -uroot -p --host=localhost --all-databases --no-create-info

--데이터 없음, -d

데이터는 내보내지 않고, 데이터베이스 테이블 구조만 내보내집니다.

mysqldump -uroot -p --host=localhost --all-databases --no-data

--집합 이름이 없는, -N

--skip-set-charset과 동등하다

mysqldump -uroot -p --host=localhost --all-databases --no-set-names

--옵트

--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys 와 동등합니다. 이 옵션은 기본적으로 활성화되어 있으며, --skip-opt로 비활성화할 수 있습니다.

mysqldump -uroot -p --host=localhost --all-databases --opt

--기본 순서

기본 키가 존재하거나 첫 번째 고유 키가 있다면, 각 테이블의 레코드를 정렬합니다. 이 방법은 MyISAM 테이블을 InnoDB 테이블로 내보낼 때는 작동하지만, 내보내기 과정이 오래 걸립니다.

mysqldump -uroot -p --host=localhost --all-databases --order-by-primary

--비밀번호, -p

데이터베이스 비밀번호를 연결하세요

--파이프 (창문용)

이름이 지정된 파이프라인을 사용해 mysql에 연결하세요

mysqldump -uroot -p --host=localhost --all-databases --pipe

--포트, -P

데이터베이스 포트 번호에 연결하세요

--프로토콜

사용되는 연결 프로토콜에는 TCP, 소켓, 파이프, 메모리 등이 포함됩니다.

mysqldump -uroot -p --host=localhost --all-databases --protocol=tcp

--빨리, -q

쿼리를 버퍼링하지 않고 바로 표준 출력으로 내보내세요. 기본값이 켜져 있으니 --skip-quick을 사용해 이 옵션을 취소하세요.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quick

--인용-이름들,-Q

테이블 및 컬럼 이름을 생성하려면 (')를 사용하세요. 기본값이 켜져 있으니, --skip-quote-names를 사용해 이 옵션을 취소하세요.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-quote-names

--교체

REPLACE INTO를 사용해 INSERT INTO를 대체하세요.

mysqldump -uroot -p --host=localhost --all-databases --replace

--결과 파일, -r

지정된 파일에 직접 출력합니다. 이 옵션은 줄 줄 감기를 사용하는 시스템(예: DOS, Windows)에서 사용해야 합니다. 이 옵션은 한 줄만 사용되도록 보장합니다.

mysqldump -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

--루틴, -R

저장 프로시저뿐만 아니라 사용자 지정 함수도 내보내세요.

mysqldump -uroot -p --host=localhost --all-databases --routines

--집합-문자 집합

출력 파일에 'SET NAMES default_character_set'을 추가하세요. 기본 열린 상태로 설정하고, --skip-set-charset을 사용해 옵션을 닫으세요.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-set-charset

--단일 거래

이 옵션은 데이터를 내보내기 전에 BEGIN SQL 문장을 제출하는데, 이 문은 어떤 애플리케이션도 차단하지 않고 내보내기 시점에 데이터베이스의 일관된 상태를 보장합니다. 이 엔진은 다중 버전 스토리지 엔진에서만 작동하며, 오직 InnoDB에서만 작동합니다. 이 옵션과 --lock-tables 옵션은 상호 배타적인데, LOCK TABLES는 대기 중인 모든 트랜잭션을 암묵적으로 커밋하기 때문입니다. 큰 테이블을 내보내고 싶다면, --quick 옵션을 조합해서 사용하는 게 좋습니다.

mysqldump -uroot -p --host=localhost --all-databases --single-transaction

--덤프 날짜

출력 파일에 내보내기 시간을 추가하세요. 기본 오픈 스테이트를 사용하고, --skip-dump-date 옵션을 사용해 닫으세요.

mysqldump -uroot -p --host=localhost --all-databases

mysqldump -uroot -p --host=localhost --all-databases --skip-dump-date

--스킵-옵트

–opt 옵션을 비활성화하세요.

mysqldump -uroot -p --host=localhost --all-databases --skip-opt

--소켓,-S

mysql에 연결되는 소켓 파일 위치를 지정하면 기본 경로는 /tmp/mysql.sock입니다

mysqldump -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

--탭,-T

주어진 경로의 각 테이블에 대해 탭 분할 텍스트 파일을 만듭니다. 참고: 같은 컴퓨터에서 실행되는 mysqldump와 mysqld 서버에만 해당됩니다.

mysqldump -uroot -p --host=localhost test test --tab="/home/mysql"

--표

내보낼 테이블 이름을 지정하기 위해 --databases (-B) 매개변수를 덮어씁니다.

mysqldump -uroot -p --host=localhost --databases test --tables test

--트리거

내보내기 트리거. 이 옵션은 기본적으로 활성화되어 있으니, --skip-triggers로 비활성화하세요.

mysqldump -uroot -p --host=localhost --all-databases --triggers

--TZ-UTC

내보내기 상단에 시간대를 TIME_ZONE='+00:00'을 설정하여 다른 시간대에서 내보내거나 데이터가 다른 시간대로 이동할 때 TIMESTAMP 데이터가 정확히 맞도록 하세요.

mysqldump -uroot -p --host=localhost --all-databases --tz-utc

--사용자, -u

연결 번호의 사용자 이름을 명확히 하세요.

--장황하고, --v

여러 플랫폼 정보를 출력하세요.

--버전, -V

mysqldump 버전 정보 출력 및 종료

--여기서 -w

주어진 WHERE 조건에 대해 선택된 레코드만 덤프됩니다. 조건에 명령어 인터프리터별 공간이나 문자가 포함되어 있다면, 반드시 해당 조건을 참조해야 합니다.

mysqldump -uroot -p --host=localhost --all-databases --where=" user='root'"

--xml, -X

XML 형식 내보내기.

mysqldump -uroot -p --host=localhost --all-databases --xml

--plugin_dir

클라이언트 측 플러그인 목록은 다양한 플러그인 버전과의 호환성을 위한 것입니다.

mysqldump -uroot -p --host=localhost --all-databases --plugin_dir="/usr/local/lib/plugin"

--default_auth

클라이언트 플러그인은 기본적으로 권한을 사용합니다.

mysqldump -uroot -p --host=localhost --all-databases --default-auth="/usr/local/lib/plugin<PLUGIN>/"





이전의:부트스트랩 테이블에서 Json의 값을 얻을 수가 없습니다
다음:쿼리 결과를 Json 형식으로 변환하기 스크립트 공유
게시됨 2019. 6. 1. 오전 2:16:47 |
공유해 주셔서 감사합니다
 집주인| 게시됨 2021. 2. 7. 오전 10:01:20 |
MySQL은 쿼리 결과를 파일로 내보냅니다
https://www.itsvse.com/thread-9557-1-1.html
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com