MySQL 데이터베이스 백업 및 복원(명령줄에서)
지난 며칠 동안 나는 두 대의 다른 서버 사이에서 my side projects을 이전해 왔다.
이렇게 하는 동시에, 나는 MySQL 데이터베이스를 백업하고 복구하는 빠른 방법이 필요하다.가장 간단하고 효과적인 방법은 명령행을 사용하는 것이다.
mysqldump
및 mysql
명령을 사용합니다.PS: 때때로 나는 phpMyAdmin을 사용하여 빠른 데이터베이스 백업을 만든다.그러나 때때로, 내가 잠시 후에 데이터베이스를 가져오려고 시도할 때 이상한 오류가 발생할 수 있다.또한 phpMyAdmin은 서버의 PHP 파일 업로드 제한을 받습니다.
TLDR;
빠르고 더러운 버전:
mysqldump를 사용하여 MySQL 데이터베이스 백업
명령줄에서 MySQL 백업을 만들려면
mysqldump
명령을 사용합니다.mysqldump -u mysql_username -p datbase_name > /path/to/the/new/backup/file.sql
mysql_username
계정의 암호를 입력하라는 메시지가 표시됩니다.그런 다음 데이터베이스 백업이 시작됩니다.이렇게 하면
/path/to/the/new/backup/file.sql
에 있는 새 파일에서 동일한 서버에 대한 전체 MySQL 데이터베이스 백업이 생성됩니다.주의: 이 파일이 이미 존재하면 덮어씁니다.만약 ssh 계정이 이 파일 위치에 대한 쓰기 권한이 없다면 백업 작업은 실패할 것입니다.
새 서버로 데이터베이스 백업 전송
나처럼 데이터베이스 백업을 다른 서버로 전송하려면
scp
명령을 사용하여 로컬 컴퓨터에서 안전하게 다운로드할 수 있습니다.scp
과 함께 파일을 다운로드하려면 로컬 컴퓨터에서 다음을 실행하십시오.scp remote_user_1@server_1_ip:/path/to/remote/file.sql /path/to/local/computer/save/directory
그런 다음 파일을 다른 서버에 업로드하여 로컬 컴퓨터에서 실행할 수 있습니다.scp /path/to/local/computer/save/file.sql remote_user_2@server_2_ip:/path/to/upload/remote/file.sql
MySQL 백업 복구
백업 파일을 최종 서버에 배치하고
mysql
명령을 사용하여 명령줄에서 MySQL 데이터베이스 백업을 복원할 수 있습니다.mysql -u mysql_username -p database_name < /absolute/path/to/the/backup.sql
프롬프트가 나타나면 MySQL 사용자 계정의 암호를 입력합니다.그럼 시합하러 가!🚀데이터베이스 테이블과 레코드가 생성됩니다.이 작업을 완료하는 총 시간은 백업 크기, 압축 및 서버 사양에 따라 달라집니다.
MySQL 데이터베이스 백업 및 복구 방법
명령줄을 사용하여 MySQL 데이터베이스 백업을 실제 백업 및 복원하려면 다음이 필요합니다.
MySQL 서버에 연결
명령줄을 사용하여 MySQL 서버에 SSH를 연결합니다.
ssh server_username@ip_address
# or
ssh [email protected]
MySQL 데이터베이스 보기
백업할 데이터베이스의 이름을 모르는 경우 MySQL 사용자 계정이 액세스할 수 있는 MySQL 데이터베이스를 나열할 수 있습니다.
mysql
명령줄 도구(일명 cli
)와 유효한 사용자 이름 및 암호를 사용합니다.mysql -u mysql_username -p
MySQL 사용자의 계정 암호를 입력하라는 메시지가 표시됩니다.그리고 데이터베이스 서버에 연결됩니다. MySQL 사용자는 mysql_username
입니다.주의:
-p
로고는 터미널에서 우리에게 비밀번호를 입력하라고 알릴 수 있습니다.-p
플래그가 없으면 연결이 실패할 수 있습니다.예를 들면'비밀번호가 필요해'.연결이 완료되면
mysql_username
계정이 액세스할 수 있는 MySQL 데이터베이스를 나열할 수 있습니다.show databases;
데이터베이스 이름을 알고 mysql
cli 를 종료합니다.exit;
mysqldump를 사용하여 MySQL 데이터베이스 백업 만들기
MySQL 데이터베이스 백업, 특히 빠른 전체 백업을 만들기 위해 저는
mysqldump
명령을 즐겨 사용합니다.이것은 기본적으로 MySQL (MariaDB) 을 설치했을 뿐만 아니라, 이 명령의 문법은 mysql
명령과 기본적으로 같다.하지만 이따가 더 많은 내용이 있을 거예요.데이터베이스 이름이 있는 상태에서 다음과 같이
mysqldump
명령을 실행합니다.mysqldump -u mysql_username -p datbase_name > /path/to/the/new/backup/file.sql
-u mysql_username
- MySQL 사용자 이름 "MySQL username"-p
- MySQL 프롬프트 알려주기 사용자 비밀번호 datbase_name
- 백업할 MySQL 데이터베이스의 이름만 > /path/to/the/new/backup/file.sql
- 명령의 출력을 같은 서버 Notice the direction of the
>
character. This tells the command to send the mysql database records into the specified file.
명령을 실행하면
mysql_username
계정의 암호를 입력하라는 메시지가 표시됩니다.그런 다음 데이터베이스 백업이 시작됩니다.불행하게도, 백업 과정에서 터미널에서 변경 사항을 볼 수 없습니다.그러나 완료되면 터미널에서 알림을 되돌려줍니다.계속해.물론 백업을 만드는 시간은 데이터베이스의 크기와 서버의 규격에 따라 다르다.기준 테스트로 내 데이터베이스에는 약 500k개의 기록이 있는데 약 20분이 걸린다.
데이터베이스 백업 보안 다운로드
만약 나처럼 데이터베이스 백업을 다른 서버로 전송해야 한다면, "secure copy"명령
scp
을 사용하여 로컬 컴퓨터에서 안전하게 다운로드할 수 있습니다.scp
과 함께 파일을 다운로드하려면 로컬 컴퓨터에서 다음을 실행하십시오.scp remote_user_1@server_1_ip:/path/to/remote/file.sql /path/to/local/computer/save/directory
데이터베이스 백업을 안전하게 업로드
MySQL 서버에서 백업을 실제로 복구하려면 백업 파일을 새 서버에 업로드해야 합니다.
로컬 컴퓨터에서 데이터베이스 백업을 업로드하려면 보안 복제 명령
scp
을 사용합니다.scp /path/to/local/computer/save/file.sql remote_user_2@server_2_ip:/path/to/upload/remote/file.sql
주의: 이 두 개의 scp
명령 예는 모두 내 로컬 컴퓨터에서 실행됩니다. 왜냐하면 모든 서버의 SSH 키가 내 컴퓨터에 있기 때문입니다.SSH 키를 두 서버 간에 파일을 직접 전송하도록 설정하면 scp
을 두 서버 간에 전송하기만 하면 됩니다.MySQL 데이터베이스 서버 만들기
MySQL 데이터베이스를 사용할 수 있는 목록이 표시되도록 연결했습니다.
show databases;
MySQL 데이터베이스 삭제(필요에 따라)
mysqldump
의 전체 MySQL 데이터베이스 백업에서 복구하려면 기존 데이터베이스를 삭제한 다음 다시 만들어야 할 수도 있습니다.반대로 될 줄 알았어.MySQL 데이터베이스를 삭제하려면 다음 명령을 사용합니다.
drop database name_here;
Note: In order to DELETE new MySQL databases, you user account will need the
DELETE
permission item. If your account does not have it, you may need to DELETE the database from your hosting control panel.
새 MySQL 데이터베이스 만들기
서버에 MySQL 데이터베이스가 없는 경우 다음 명령을 사용하여 새 MySQL 데이터베이스를 만들 수 있습니다.
create database name_here;
Note: In order to CREATE new MySQL databases, you user account will need the
CREATE
permission item. If your account does not have it, you may need to CREATE the database from your hosting control panel.
복원할 MySQL 데이터베이스 선택
데이터베이스가 존재하는 경우
use
명령을 사용하여 선택할 수 있습니다.use database_name;
백업을 복구할 데이터베이스를 선택해야 합니다(일명 use
).백업에서 MySQL 데이터베이스 복원
데이터베이스 백업을 업로드한 이상 이 백업을 복구할 준비가 되어 있습니다.
exit;
명령을 사용하여 mysql cli를 종료합니다.그런 다음 일반 터미널 프롬프트에서 데이터베이스 백업을 복원합니다.mysql -u mysql_username -p database_name < /absolute/path/to/the/backup.sql
Notice the direction of the
<
character. This tells the command to read the contents of the file and send it to the mysql program. (aka import the backup)
이 문장이 우리를 도울 수 있기를 바란다.즐거운 시간 되세요!😁
이 글은 how to backup and restore a MySQL database에 발표되었고, 최초로 나의 개인 사이트 frostbutter.com에 발표되었다
Reference
이 문제에 관하여(MySQL 데이터베이스 백업 및 복원(명령줄에서)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nickfrosty/backup-and-restore-mysql-databases-from-the-command-line-359l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)