명령 행에서 MySQL 덤프 다운로드


306

Linux sysadmin 기술이 필요하지 않기 때문에 Linode에서 멀어졌습니다. 보다 멍청한 서비스로 전환하기 전에 MySQL 데이터베이스의 내용을 다운로드해야합니다. 커맨드 라인에서 이것을 할 수있는 방법이 있습니까?



mysqldump 는 당신이 찾고있는 것입니다.
Faruk Sahin

1
@AZinkey 나는 당신이 그 게시물 사본의 수락 된 답변을 찾아 내 답변의 내용 (단어 단어)을 답변 달의 첫 번째 부분에 붙여 넣을 것이라고 생각합니다 ...
nickhar

답변:


656

mysqldump 명령 행 함수를 사용하여이를 수행 할 수 있습니다 .

예를 들면 다음과 같습니다.

전체 DB 인 경우 :

   $ mysqldump -u [uname] -p db_name > db_backup.sql

그것이 모두 DB라면 다음과 같습니다.

   $ mysqldump -u [uname] -p --all-databases > all_db_backup.sql

DB 내의 특정 테이블 인 경우 :

   $ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql

gzip을 사용하여 출력을 자동 압축하는 것까지 가능합니다 (DB가 매우 큰 경우).

   $ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz

원격 으로이 작업을 수행 하고 해당 서버에 액세스 할 수 있다면 다음이 작동합니다 (MySQL 서버가 포트 3306에 있다고 가정).

   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql

.sql명령 줄을 실행하는 폴더에 파일을 놓아야합니다 .

편집 : CLI 명령에 비밀번호가 포함되지 않도록 업데이트하려면 비밀번호 -p없이 옵션을 사용하십시오 . 메시지를 표시하고 기록하지 않습니다.


1
stackoverflow.com/questions/2989724/… 와 함께 귀하의 답변 -그가 요구하는 것을 다운로드해야합니다. 그것은 하나의 그하거나 wget또는 scp내장 한 번 말했다 파일을 검색하는 데 필요합니다.
Zak

47
명령에 바로 암호를 입력하지 않는 것이 안전합니다. 비밀번호없이 -p 옵션을 사용하는 경우에만 비밀번호가 프롬프트 될 때 비밀번호를 묻는 프롬프트가 표시되므로 비밀번호는 명령 히스토리에 저장되지 않고 검색 될 수 있습니다. 따라서 다음 명령을 사용하십시오. mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name> db_backup.sql
Pitt

3
>저장 에 사용 하는 대신 이 기사에서-r 언급 한 것처럼 외부 문자 또는 인코딩 문제와 관련된 악몽을 방지하기 위해 사용 합니다.
Pathros

1
대규모로 업데이트되거나 활발하게 업데이트되는 데이터의 경우 --single-transaction 매개 변수를 사용하십시오. 검사 점을 만들고 일관성을 유지하는 데 도움이됩니다. 또한 저장 프로 시저 / 기능 / 트리거가있는 경우 스위치
루틴

1
--result-file=db_backup.sql대신 사용해야 합니다 > db_backup.sql. MySQL 문서 에서 인용 : "UTF-16은 연결 문자 세트로 허용되지 않으므로 (허용 되지 않는 클라이언트 문자 세트 참조 ) 덤프 파일이 올바르게로드되지 않습니다.이 문제를 해결하려면 --result-file출력을 작성하는 옵션을 사용하십시오 . ASCII 형식 "
Martin Braun

13

최소한 mysql의 최신 버전에서는 패스를 명령에 직접 넣을 수 없습니다.

당신은 실행해야합니다 :

mysqldump -u [uname] -p db_name > db_backup.sql

그런 다음 암호를 묻습니다.


2
사이의 분리 공간이 -p옵션을 선택하고 실제 암호 트릭 않습니다
Y2K-하기 Shubham

8

원격 서버에서 다운로드하는 경우 간단한 예는 다음과 같습니다.

mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-p는 비밀번호를 입력 함을 나타내며 db_name과 관련이 없습니다. 명령을 입력하면 암호를 입력하라는 메시지가 나타납니다. 입력하고 Enter를 누르십시오.


5

Windows에서는 mysqldump.exe가 상주하는 mysql bin을 지정해야합니다.

cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

이것을 backup.cmd와 같은 텍스트 파일에 저장하십시오.


또는 일반적으로 PATH 변수에 mysql이 있으므로 mysql디렉토리에 있지 않고도 어디에서나 명령을 실행할 수 있습니다 .
behz4d

2

명령 프롬프트를 열고이 명령을 직접 입력하십시오. mysql에 들어 가지 말고이 명령을 입력하십시오.

mysqldump -u [uname] -p[pass] db_name > db_backup.sql

1
5 살짜리 질문에 대한 승인 된 답변에서 첫 번째 코드 줄을 복사하는 것은 업장 농업을위한 대담한 전략입니다.
Phillip Copley

Mysql 프롬프트 에서이 MySQLdump 명령을 시도했지만 작동하지 않았습니다. 방금 대답 :-)
Nithin Raja

2

MySQL 설치 디렉토리로 이동하여 거기서 cmd를여십시오. 그런 다음 아래 명령을 실행하여 데이터베이스 백업을 받으십시오.

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql

1

cmd를 입력 mysqldump하거나 mysqldump --help입력하면how to use

여기 내 cmd 결과가 있습니다.

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

1

기본 포트 이외의 MySQL을 실행중인 경우 :

mysqldump.exe -u username -p -P PORT_NO database > backup.sql

1

명령 행에 비밀번호를 입력하려는 경우. 특수 문자로 인해 문제가 발생하지 않도록 따옴표로 묶는 것이 좋습니다.

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

-1

이것을 사용하십시오. 이름이 archiedb 인 데이터베이스가있는 경우 다음을 사용하십시오. mysql -p --databases archiedb> /home/database_backup.sql

이것이 리눅스라고 가정하면 백업 파일을 저장할 위치를 선택하십시오.


shell> mysqldump -p mypassword-데이터베이스 mydb> /home/backup.sql.
Nabaasa Archie

-1

Windows 사용자의 경우 mysql 폴더로 이동하여 명령을 실행할 수 있습니다

예 :

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql

1
이 질문은 MySQL이 Linux에서 실행되고 있다고 제안했습니다.
gmauch

-1

참고 :이 단계는 MySQL 파일을 덤프 한 후에 만 ​​이루어집니다 (위의 대부분의 답변이 해결되었습니다).

원격 서버에 해당 덤프 파일이 있고 로컬 컴퓨터로 가져 오려고한다고 가정합니다.

덤프 된 .sql파일을 원격 서버에서 로컬 컴퓨터로 다운로드하려면

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