mysqldump에서 덤프 파일을 어떻게 복원합니까?


543

Windows Server 2008 컴퓨터에서 데이터베이스로 복원해야하는 MySQL 데이터베이스 파일이 제공되었습니다.

MySQL Administrator를 사용해 보았지만 다음 오류가 발생했습니다.

선택한 파일은 mysqldump에 의해 생성되었으며이 응용 프로그램으로 복원 할 수 없습니다.

이 작업을 어떻게 수행합니까?

답변:


587

이것을 실행하는 것만 큼 간단해야합니다.

mysql -u <user> -p < db_backup.dump

덤프가 단일 데이터베이스 인 경우 파일 맨 위에 행을 추가해야합니다.

USE <database-name-here>;

많은 데이터베이스가 덤프 된 경우, use 문이 이미 있습니다.

이 명령을 실행하려면 명령 프롬프트 (Windows에서)와 실행 파일이 cd있는 디렉토리를여십시오 mysql.exe(약간 살펴 봐야 할 수도 있습니다. mysql을 설치 한 방법 (예 : 독립형 또는 일부)에 따라 다릅니다. WAMP와 같은 패키지). 해당 디렉토리에 있으면 위와 같이 명령을 입력하면됩니다.


1
"MySQL Command Line Client"를 사용합니까? 전에는 MySQL을 사용해 본 적이 없습니다.
잭 피터슨

1
텍스트 편집기에서 덤프 파일을 엽니 다. "사용 중"문이 있으면 여러 데이터베이스에 대해 선택하기가 매우 쉽습니다. 해당 명령을 실행하십시오.
저스틴 베넷

6
물론 "using"문에 넣은 데이터베이스가 먼저 존재해야합니다.
저스틴 베넷

112
vogs answer를 참조하십시오. 파일의 시작 부분에 구문이 mysql -u<user> -p mydatabasename < db_backup.dump 필요하지 않습니다USE
Toskan

1
"텍스트 편집기에서 덤프 파일을여십시오"제안이 이상하게 보입니다. 작은 데이터베이스 또는 EditPad와 같은 버퍼링 된 텍스트 편집기에서 작동 할 수 있지만 다른 모든 경우에는 질식합니다. 이 단계를 수행하지 않아도되면 좋을 것입니다.
mikato 2019

718

복원하려는 데이터베이스가 없으면 먼저 작성해야합니다.

명령 행에서 덤프 된 파일이 포함 된 동일한 디렉토리에있는 경우 다음 명령을 적절하게 대체하십시오.

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;

52
나는 개인적으로이 방법을 좋아한다. 덤프의 진행 상황과 다른 SQL에 걸리는 시간을 정확하게 보여줍니다.
ToughPal

11
@Phrogz 실제로 mysql -u root -psecret 공백없이 사용하여 명령 줄에 암호를 제공 할 수 있지만 암호가 프로세스 목록 및 로그 파일에 일반 텍스트로 표시되는 단점이 있습니다. 빈칸을 사용 -p하여 프롬프트에 입력하는 것이 좋습니다 .
Joe Holloway

이 방법은 덤프 파일을 편집하지 않고도 세션 기반 변수 (예 : FOREIGN_KEY_CHECKS)를 설정할 수 있다는 이점이 있습니다.
Chris Cooper

손으로 이런 종류의 일을 할 때 이것은 훌륭하고 훌륭하지만 bash 스크립트에서는 작동하지 않습니다.
chacham15

1
한 가지 단점 : gzipped 덤프 (예 :로 생성 mysqldump db | gzip -9 > dumpfile.sql.gz)를 로드 할 수 없음
Marinos An

246

당신은 단순히 이것을 실행해야합니다 :

mysql -p -u[user] [database] < db_backup.dump

덤프에 여러 데이터베이스가 포함 된 경우 데이터베이스 이름을 생략해야합니다.

mysql -p -u[user] < db_backup.dump

이 명령을 실행하려면 명령 프롬프트 (Windows에서)와 실행 파일이 cd있는 디렉토리를여십시오 mysql.exe(약간 살펴 봐야 할 수도 있습니다. mysql을 설치 한 방법 (예 : 독립형 또는 일부)에 따라 다릅니다. WAMP와 같은 패키지). 해당 디렉토리에 있으면 명령을 입력하기 만하면됩니다.


60
mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

보고 여기에 - 3 단계 : 당신이 그나마이 방법은 USE 문을 필요


33

로 덤프 파일을 만들 때 mysqldump포함 된 내용은 데이터베이스 내용을 다시 작성하기위한 큰 SQL 스크립트입니다. 따라서 MySQL의 명령 행 클라이언트를 시작하여 복원합니다.

mysql -uroot -p 

( rootMySQL의 관리자 이름이 있습니다) 데이터베이스에 연결되면 데이터베이스를 만들고 파일을 읽는 명령이 필요합니다.

create database new_db;
use new_db;
\. dumpfile.sql

덤프 파일을 작성할 때 사용 된 옵션에 따라 세부 사항이 달라집니다.


19

명령을 실행하여 DB에 입력하십시오

 # mysql -u root -p 

사용자의 비밀번호를 입력 한 후 새 DB 생성

mysql> create database MynewDB;
mysql> exit

그리고 종료하십시오.

# mysql -u root -p  MynewDB < MynewDB.sql

그런 다음 db에 입력하고 입력하십시오.

mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

........ 덤프가 한 DB에서 다른 DB로 복원됩니다.

그렇지 않으면 덤프 복원을위한 대체 방법이 있습니다

# mysql -u root -p 

그런 다음 db에 입력하고 입력하십시오.

mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit

14

이 단계를 따라 작동하도록했습니다 ...

  1. MySQL 관리자를 열고 서버에 연결

  2. 왼쪽에서 "카탈로그"를 선택하십시오

  3. 왼쪽 아래 상자를 마우스 오른쪽 단추로 클릭하고 "새 스키마 작성"을 선택하십시오.

    MySQL 관리자 http://img204.imageshack.us/img204/7528/adminsx9.th.gif 이미지 확대

  4. 새 스키마의 이름을 지정하십시오 (예 : "dbn")

    MySQL의 새로운 스키마 http://img262.imageshack.us/img262/4374/newwa4.th.gif 이미지 확대

  5. Windows 명령 프롬프트 열기 (cmd)

    Windows 명령 프롬프트 http://img206.imageshack.us/img206/941/startef7.th.gif 이미지 확대

  6. 디렉토리를 MySQL 설치 폴더로 변경

  7. 실행 명령 :

    mysql -u root -p dbn < C:\dbn_20080912.dump

    … 여기서 "root"는 사용자 이름이고 "dbn"은 데이터베이스 이름이며 "C : \ dbn_20080912.dump"는 mysqldump .dump 파일의 경로 / 파일 이름입니다.

    MySQL 덤프 복원 명령 줄 http://img388.imageshack.us/img388/2489/cmdjx0.th.gif 이미지 확대

  8. 즐겨!



11

덤프 진행 상황을 보려면 다음을 시도하십시오.

pv -i 1 -p -t -e /path/to/sql/dump | mysql -u USERNAME -p DATABASE_NAME

물론 'pv'가 설치되어 있어야합니다. 이 명령은 * nix에서만 작동합니다.


10

이전 답변의 구체적인 예 :

백업을 SQL Server로 가져 오거나 마이그레이션 할 수 있도록 백업을 복원해야했습니다. MySql 만 설치했지만 서비스로 등록하거나 계속 실행할 필요가 없으므로 경로에 추가하지 않았습니다.

Windows 탐색기를 사용하여 덤프 파일을 C : \ code \ dump.sql에 넣었습니다. 그런 다음 시작 메뉴 항목에서 MySql을여십시오. DB를 만든 다음 다음과 같이 전체 경로로 소스 명령을 실행했습니다.

mysql> create database temp
mysql> use temp
mysql> source c:\code\dump.sql

9

Linux에서 작성된 200MB 덤프 파일을 사용하여 mysql 5.5가 포함 된 Windows에서 복원하면

source file.sql

mysql 프롬프트에서보다

mysql  < file.sql

일부 오류 2006 "서버가 사라졌습니다"(Windows)

이상하게도 (mysql) 설치 중에 생성 된 서비스는 존재하지 않는 my.ini 파일을 참조합니다. "큰"예제 파일을 권장 증가로 이미 수정 한 my.ini에 복사했습니다.

내 가치는

[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250

9
./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file

이것은 다른 두 가지 답변과 동일하며 여덟 살짜리 질문입니다.
miken32

2
선택한 답변이 매우 좋지만 실제로이 답변이 더 유용했습니다. 내 데이터베이스 파일은 거대했고 메모장 ++에서 파일을 여는 것은 악몽이었습니다. 크기를 처리 할 수 ​​없었기 때문에 SQL 파일의 맨 위에 데이터베이스 이름을 추가 할 수 없었습니다. 이 경우 명령 행에서 db 이름을 지정할 수있는 것이 실제로 더 유용합니다.
Najeeb

mysql명령은 옵션과 인수 사이에 공백을 허용하지 않습니다. 그것은해야 -u<username>하는 대신, 암호는 전혀 명령 행에 제공 할 수 없습니다.
Roland Illig

4

백업 / 덤프가 생성되지 않은 경우 MySQL Admin에서 복원 메뉴를 사용할 수 없습니다. 그래도 가치가 있습니다. 확인란을 사용하여 "오류 무시"를 선택하면 성공적으로 완료되었다고 표시되지만 가져온 행의 일부만으로 명확하게 종료되지만 덤프가 있습니다.


2

에서 생성 된 SQL을 복원하는 단일 라이너 명령 mysqldump

mysql -u <username> -p<password> -e "source <path to sql file>;"

1
mysql -u root -p12345678 -e "source /tmp/backup.sql;"
Jossef Harush

이와 같이 비밀번호를 사용하지 마십시오. -p를 사용하면 Enter 키를 누른 후 명령 행에 보안 비밀번호 요청 프롬프트가 표시됩니다.
user2473015

대화식 프롬프트를 감당할 수 있으면 맞습니다. 당신이 (예를 들어 무인 스크립트)를 할 수 없을 때 아마 인라인으로 사용할 것입니다
Jossef Harush

1

MySQL 관리자에서 복원 메뉴를 사용할 수도 있습니다. 백업 파일을 연 다음 복원 버튼을 클릭하면됩니다.


0

MySQLWorkbench로 MySQL 데이터베이스를 복원하는 방법

쿼리 탭에서 드롭을 실행하고 명령을 작성할 수 있습니다.

현재 존재하는 스키마 삭제

DROP DATABASE `your_db_name`;

새로운 스키마 생성

CREATE SCHEMA `your_db_name`;

덤프 파일을여십시오

MySQLWorkbench는 SQL 파일을 엽니 다

  1. 클릭 새 쿼리 탭에서 열기 SQL 스크립트를 아이콘과 DB 덤프 파일을 선택합니다.
  2. 그런 다음 SQL 스크립트 실행 ...을 클릭 하십시오.
  3. 그런 다음 SQL 덤프 스크립트의 첫 줄을 미리 볼 수 있습니다.
  4. 그런 다음 기본 스키마 이름 을 선택합니다
  5. 그런 다음 기본 문자 세트를 선택 하십시오. utf8은 일반적으로 안전한 내기이지만 character_set 과 같은 미리보기 행을 보는 것을 식별 할 수 있습니다 .
  6. 실행을 클릭 하십시오
  7. 큰 DB 복원 스크립트에주의를 기울이고 드라이브 공간이 녹는 것을 지켜보십시오! 🎉

0

빈 데이터베이스가 이미 생성되었다고 가정하면 다음과 같이 명령 줄에서 데이터베이스를 복원 할 수도 있습니다.

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