mysqldump 추가 드롭 테이블?


10

Codex에서 데이터베이스를 백업하기 위해 --add-drop-table 옵션이 표시됩니다. 문제를 해결하기 전에 백업을 가져올 때 대상 DB에 테이블이 있으면 테이블을 덮어 씁니다.

백업 할 때 테이블을 삭제하고 싶지 않습니다!

user@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver
 -u mysqlusername -p databasename (tablename tablename tablename) | bzip2
 -c > blog.bak.sql.bz2

Enter password: (enter your mysql password)
user@linux~/files/blog>

http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands

답변:


10

작성된 파일의 MySQL 덤프 출력에만 영향을줍니다.

필요하지 않습니다. 작성된 덤프 파일을 이미 동일한 이름의 테이블이있는 데이터베이스로 가져 오면 해당 테이블을 삭제 한 다음 새 테이블을 해당 위치에 추가합니다. 그렇지 않으면 오류가 발생하여 덤프 파일을 가져 오지 않습니다.

덤프 파일에서 테이블 작성 명령문 앞에 다음 행을 추가합니다.

DROP TABLE IF EXISTS `tablename`;

덤프 파일을 새로운 데이터베이스로 가져 오려는 경우 문제가되지 않습니다.


흥미로운 점은 기존 WP 데이터베이스에서 add-drop-table 옵션없이 덤프를 사용하더라도 잘 작동한다는 것입니다.
AlxVallejo

5

때문입니다 전체 구문은 다음과 같은 것을 간다 :

mysql>mysqldump --opt --all-databses > all.sql

--opt--add-drop-tableMySQL 문서에 언급 된대로 기본적으로 활성화되어 있습니다 (을 의미합니다 ).


0

이 구문에서 --add-drop-table을 제거하면 --add-drop-table이 사용됩니다. --opt가 기본값이고 --skip-opt를 사용하지 않는 경우 --opt는 --add-drop을 포함하기 때문입니다. -표. 여기를 참조하십시오 : https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_opt

그리고 위에서 언급했듯이 백업 할 때 테이블이 삭제되는 것이 아니라 테이블 삭제 명령이 sql 파일에 포함된다는 것을 의미합니다. 덤프에 원하는 것이기 때문에 덤프를 가져올 필요가 없습니다. 테이블이 이미 존재하는 오류.

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