--all-databases mysqldump에서 단일 데이터베이스를 가져올 수 있습니까? 수동으로 파일을 수정할 수 있지만이 작업을 수행 할 수있는 명령 줄 옵션이 있는지 궁금합니다.--all-databases 덤프에서 단일 데이터베이스 가져 오기
저는 서버를 옮기고 많은 데이터베이스를 가지고 있습니다. 현재 대부분 필요하지 않거나 필요하지 않지만 필요한 경우 하나만 복원 할 수있는 옵션이 필요합니다.
--all-databases mysqldump에서 단일 데이터베이스를 가져올 수 있습니까? 수동으로 파일을 수정할 수 있지만이 작업을 수행 할 수있는 명령 줄 옵션이 있는지 궁금합니다.--all-databases 덤프에서 단일 데이터베이스 가져 오기
저는 서버를 옮기고 많은 데이터베이스를 가지고 있습니다. 현재 대부분 필요하지 않거나 필요하지 않지만 필요한 경우 하나만 복원 할 수있는 옵션이 필요합니다.
mysqldump
출력은 단지 SQL
문장의 집합입니다.
는 명령 줄에서 원하는 데이터베이스를 제공하고 사용하여 다른 데이터베이스에 대해 명령을 건너 뛸 수 있습니다 :
당신은을 사용할 수 있습니다 mydatabase
가 사용 중일 때
mysql -D mydatabase -o < dump.sql
에만이 명령을 실행합니다 다음 명령 :
mysql -u root -p --one-database destdbname < alldatabases.sql
여기에서 destdbname
은 복원하려는 원하는 데이터베이스입니다.
IMHO 훨씬 더 안전한 다른 옵션은 --all-databases
덤프에서 DB를 추출하는 것입니다. 예 :
sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' alldatabases.sql > output.sql
dbname
을 원하는 데이터베이스 이름으로 바꿉니다. alldatabases.sql
은 sql-dump 파일의 이름입니다. 그런 식으로 분리 된 DB를 파일에 저장 한 다음 간단한 mysql 명령을 사용하여 복원 할 수 있습니다.
행운
(크레딧에 간다 : 대런 Mothersele - his page 참조) 빠른 답변을
그레이트 솔루션! 이것은 몇 가지 오류를 피하기 위해 원래 덤프 헤더를 추가해야만한다고 ... – neuro
감사합니다! 굉장해. – savageguy
나를 위해 매우 유용합니다, 감사합니다 !! mysql -u user -D --disable-keys database -o
davidselo
이것은 매우 무모하며 엄청나게 위험합니다. mysqldump --all-databases'를 실행하면, mysqldump 출력은'DROP DATABASE IF EXISTS dbname; CREATE DATABASE dbname; mysql 스키마를 포함하여 MySQL 인스턴스의 모든 데이터베이스에 대해 'USE dbname; mysqldump 문서를 참고하십시오 : http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html#option_mysqldump_all-databases. 즉, 모든 데이터베이스가 무자비하게 덮어 쓸 것입니다. 당신은 하나의 데이터베이스를 제외한 모든 데이터베이스를 건너 뛸 것이라는 증거를 제공 할 수 있습니까? 참고 : mysqlbinlog를 사용하여 바이너리 로그에이 작업을 수행 할 수 있습니다. – RolandoMySQLDBA