MySQL 데이터베이스에서 단일 테이블의 백업을 수행하는 방법은 무엇입니까?


441

기본적으로 mysqldump전체 데이터베이스를 백업합니다. MySQL에서 단일 테이블을 백업해야합니다. 가능합니까? 어떻게 복원합니까?

답변:


838

.sql에서 단일 테이블 덤프 및 복원

덤프

mysqldump db_name table_name > table_name.sql

원격 데이터베이스에서 덤프

mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql

추가 참조 :

http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html

복원

mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql

또는 한 줄로

mysql -u username -p db_name < /path/to/table_name.sql


압축 된 (.sql.gz) 형식에서 단일 테이블 덤프 및 복원

크레딧 : John McGrath

덤프

mysqldump db_name table_name | gzip > table_name.sql.gz

복원

gunzip < table_name.sql.gz | mysql -u username -p db_name


13
SQL은 일반적으로 잘 압축 - gzip을 통해 위의 명령 할 수있는 파이프를하고 결과 파일은 더 작아집니다 : mysqldump db_name table_name | gzip > table_name.sql.gz 복원 : gunzip < table_name.sql.gz | mysql -u username -p db_name
존 맥그래스

명령 행에 비밀번호를 포함 시키려면 어떻게해야합니까? 그래서 당신은 이미 -pPASSWORD를 사용하고 있습니다
Freedo

23

mysqldump 는 tbl_name 매개 변수를 사용할 수 있으므로 주어진 테이블 만 백업합니다.

mysqldump -u -p yourdb yourtable > c:\backups\backup.sql

15

시험

for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do 
mysqldump -u... -p.... NameDataBase $line > $line.sql ; 
done
  • $ line cotent names 테이블;)

1
이것은 데이터베이스를 별도의 테이블 쿼리로 덤프하는 데 편리합니다. 옵션이 정확히 무엇인지 알 수 있습니까?
xiankai

안녕하세요, -AN (-no-auto-rehash, -A | --skip-column-names, -N 결과에 열 이름을 쓰지 마십시오.) -e (-execute = statement, -e statement | 문 및 종료의 기본 출력 형식이 --batch으로 생산 된 것과 같다) 푸 엔테을 :.. dev.mysql.com/doc/refman/5.6/en/mysql-command-options.html
로빈 고메즈

12

아래와 같이 주어진 조건으로 특정 테이블의 mysql 덤프를 취할 수 있습니다.

mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables

테이블에 특정 where 조건을 추가하려면 다음 명령을 사용할 수 있습니다

mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables

8

MYSQLWorkbench tool하나의 덤프에서, 개별 또는 테이블 그룹을 사용하여 선택한 테이블을 쉽게 덤프 한 후 다음과 같이 가져올 수 있습니다. 또한 -h IP.ADDRESS.NUMBER after-u를 추가하여 로컬에서 호스트 를 실행중인 경우 호스트 정보를 추가 할 수 있습니다. 사용자 이름

mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql 

불행히도 Mysql Workbench에는 쓸모없는 잘못된 데이터를 내보낼 수있는 탈출 문제가 있습니다.
barell

6

이 코드를 사용할 수 있습니다 :

이 예는 sugarcrm 데이터베이스의 백업을 수행하여 출력을 sugarcrm.sql에 덤프합니다.

# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql

# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

sugarcrm.sql은 sugarcrm 데이터베이스의 모든 테이블에 대한 테이블 삭제, 테이블 작성 및 삽입 명령을 포함합니다. 다음은 accounts_contacts 테이블의 덤프 정보를 보여주는 sugarcrm.sql의 부분 출력입니다.

-

-테이블의 테이블 구조 accounts_contacts

DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;

--

5

아래 코드를 사용할 수 있습니다 :

  1. 단일 테이블 구조 만 백업

-

mysqldump -d <database name> <tablename> > <filename.sql>
  1. 데이터가있는 단일 테이블 구조

-

mysqldump <database name> <tablename> > <filename.sql>

그것이 도움이되기를 바랍니다.


5

mysqldump명령 행에서 사용할 수 있습니다 .

mysqldump -u username -p password dbname tablename > "path where you want to dump"

MySQL Workbench를 사용할 수도 있습니다.

왼쪽> 데이터 내보내기> 스키마 선택> 테이블 선택으로 이동하고 내보내기를 클릭하십시오.


단지 작은 정보, -p와 암호 사이 생략 공간 -> -ppassword,하지만 불안
아궁 사 기타
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.