mysqldump 데이터 만


답변:


553
mysqldump --no-create-info ...

또한 다음을 사용할 수 있습니다.

  • --skip-triggers: 트리거를 사용중인 경우
  • --no-create-db: --databases ...옵션을 사용하는 경우
  • --compact: 추가 의견을 제거하려면

47
여기에 복사 pasters의 전체 cmd를하다mysqldump -u USERNAME -h HOST --no-create-info --skip-triggers YOURDATABASENAME YOURTABLENAME --where='id=12345678'
Yzmir 라미레즈

2
얻을 Access denied for user ... to database '...' when doing LOCK TABLES경우--single-transaction
Rolf

@ YzmirRamirez 덕분에 Windows에서 FYI에 대해 큰 따옴표를 사용해야했습니다 --where. 예 :--where="id=2"
Kip

이것은 나를위한 훌륭한 보호기였습니다. 감사.
Ken Ingram

149

이것은 작동해야합니다 :

# To export to file (data only)
mysqldump -u [user] -p[pass] --no-create-info mydb > mydb.sql

# To export to file (structure only)
mysqldump -u [user] -p[pass] --no-data mydb > mydb.sql

# To import to database
mysql -u [user] -p[pass] mydb < mydb.sql

참고 :-p & 사이에는 공백이 없습니다[pass]


12
--no-create-db사용하는 경우 중복--no-create-info
제임스 맥마흔

4
공간 -p은 괜찮아요
감사합니다

12
일반적으로 비밀번호를 제공하지 않고 -p를 사용하여 비밀번호가 bash 기록에 저장되지 않도록하는 것이 좋습니다 (명령을 실행 한 후 비밀번호를 입력하라는 프롬프트가 표시됨).
Dan

2
@Dan의 조언 외에도 현재 프로세스를 나열 할 수있는 모든 사용자가 암호를 볼 수 있습니다 ( ps -ef)
TMG

1
-p옵션 다음에 비밀번호를 남기면 비밀번호 mysqldump를 묻는 메시지 가 표시 됩니다.
Melle

22
 >> man -k  mysqldump [enter in the terminal]

당신은 아래 설명을 찾을 수 있습니다

--no-create-info, -t

덤프 된 각 테이블을 다시 작성하는 CREATE TABLE 문을 작성하지 마십시오. 참고이 옵션은 mysqldump 출력에서 ​​로그 파일 그룹 또는 테이블 스페이스를 작성하는 명령문을 제외하지 않습니다. 그러나이 목적으로 --no-tablespaces 옵션을 사용할 수 있습니다.

-데이터 없음, -d

테이블 행 정보를 쓰지 마십시오 (즉, 테이블 내용을 덤프하지 마십시오). 이는 테이블에 대해 CREATE TABLE 문만 덤프하려는 경우에 유용합니다 (예 : 덤프 파일을로드하여 빈 테이블 사본을 작성하는 경우).

# To export to file (data only)
mysqldump -t -u [user] -p[pass] -t mydb > mydb_data.sql

# To export to file (structure only)
mysqldump -d -u [user] -p[pass] -d mydb > mydb_structure.sql

3
'-t'및 '-d'옵션을 두 번 사용하는 이유가 있습니까?
erwan

19

INSERT 쿼리 만 원하면 다음을 사용하십시오.

mysqldump --skip-triggers --compact --no-create-info


--compact추가 의견 진술을 제거해 주셔서 감사합니다
chiliNUT

2

다음 스 니펫을 사용하는 것이 좋습니다. 거대한 테이블에서도 잘 작동합니다 (그렇지 않으면 편집기에서 덤프를 열고 불필요한 것을 제거합니다.;)

mysqldump --no-create-info --skip-triggers --extended-insert --lock-tables --quick DB TABLE > dump.sql

적어도 mysql 5.x가 필요하지만 요즘 누가 오래된 것을 실행 하는가 .. :)


최근에 프로덕션 환경에서 4.x를 사용하는 시스템에 연결해야하는 상황이 발생했습니다. 그들은 테이블과 열 이름에 공백이 있었고 내 의견으로는 기본적으로 모든 것을 잘못하고있었습니다.
Elkvis


0

구분 된 파일로 덤프하십시오.

mysqldump -u [username] -p -t -T/path/to/directory [database] --fields-enclosed-by=\" --fields-terminated-by=,

0

허용 된 답변을 사용하여 데이터를 내보내려고 할 때 오류가 발생했습니다.

ERROR 1235 (42000) at line 3367: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

앞에서 말했다시피:

mysqldump --no-create-info

데이터를 내보내지만 create trigger 문도 내 보냅니다. 나처럼 하나의 명령으로 출력 데이터베이스 구조 (트리거도 포함)를 사용하고 위 명령을 사용하여 데이터를 얻으려면 '--skip-triggers'도 사용해야합니다.

따라서 데이터를 원한다면 :

mysqldump --no-create-info --skip-triggers
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.