MySQL Tutorial 63 - If Function
차례:
- Mysqldump 명령 구문
- 단일 MySQL 데이터베이스 백업
- 여러 MySQL 데이터베이스 백업
- 모든 MySQL 데이터베이스 백업
- 모든 MySQL 데이터베이스를 별도의 파일로 백업
- 압축 MySQL 데이터베이스 백업 생성
- 타임 스탬프를 사용하여 백업 생성
- MySQL 덤프 복원
- 전체 MySQL 덤프에서 단일 MySQL 데이터베이스 복원
- 하나의 명령으로 MySQL 데이터베이스 내보내기 및 가져 오기
- Cron으로 백업 자동화
- 결론
이 학습서는 mysqldump 유틸리티를 사용하여 명령 행에서 MySQL 또는 MariaDB 데이터베이스를 백업 및 복원하는 방법을 설명합니다.
mysqldump 유틸리티로 작성된 백업 파일은 기본적으로 원래 데이터베이스를 재 작성하는 데 사용할 수있는 SQL 문 세트입니다. mysqldump 명령은 CSV 및 XML 형식의 파일을 생성 할 수도 있습니다.
mysqldump 유틸리티를 사용하여 MySQL 데이터베이스를 다른 MySQL 서버로 전송할 수도 있습니다.
Mysqldump 명령 구문
mysqldump 명령을 사용하는 방법을 시작하기 전에 기본 구문을 검토하십시오.
mysqldump 유틸리티 표현식은 다음 형식을 따릅니다.
mysqldump > file.sql
-
options
file.sql
옵션 파일file.sql
덤프 (백업) 파일
mysqldump 명령을 사용하려면 MySQL 서버가 액세스 가능하고 실행 중이어야합니다.
단일 MySQL 데이터베이스 백업
mysqldump 도구의 가장 일반적인 사용 사례는 단일 데이터베이스를 백업하는 것입니다.
예를 들어, 사용자
root
사용하여 database_name이라는
database_name
의 백업을 작성하고이를 database_name.sql이라는 파일에 저장하려면 다음 명령을 실행하십시오.
mysqldump -u root -p database_name > database_name.sql
루트 비밀번호를 입력하라는 메시지가 표시됩니다. 인증에 성공하면 덤프 프로세스가 시작됩니다. 데이터베이스 크기에 따라 프로세스에 시간이 걸릴 수 있습니다.
mysqldump database_name > database_name.sql
여러 MySQL 데이터베이스 백업
하나의 명령으로 여러 MySQL 데이터베이스를 백업하려면
--database
옵션과 백업 할 데이터베이스 목록을 차례로 사용해야합니다. 각 데이터베이스 이름은 공백으로 구분해야합니다.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
위의 명령은 두 데이터베이스를 모두 포함하는 덤프 파일을 작성합니다.
모든 MySQL 데이터베이스 백업
--all-databases
옵션을 사용하여 모든 MySQL 데이터베이스를 백업하십시오.
mysqldump -u root -p --all-databases > all_databases.sql
이전 예제와 마찬가지로 위의 명령은 모든 데이터베이스를 포함하는 단일 덤프 파일을 만듭니다.
모든 MySQL 데이터베이스를 별도의 파일로 백업
mysqldump
유틸리티는 모든 데이터베이스를 별도의 파일로 백업하는 옵션을 제공하지 않지만 간단한 bash
FOR
루프를 사용하여 쉽게 달성 할 수 있습니다.
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
위의 명령은 데이터베이스 이름을 파일 이름으로 사용하여 각 데이터베이스에 대해 별도의 덤프 파일을 만듭니다.
압축 MySQL 데이터베이스 백업 생성
데이터베이스 크기가 매우 큰 경우 출력을 압축하는 것이 좋습니다. 이렇게하려면 출력을
gzip
유틸리티로 파이프하고 아래와 같이 파일로 리디렉션하십시오.
mysqldump database_name | gzip > database_name.sql.gz
타임 스탬프를 사용하여 백업 생성
mysqldump database_name > database_name-$(date +%Y%m%d).sql
위의 명령은 다음 형식의
database_name-20180617.sql
파일을 만듭니다.
MySQL 덤프 복원
mysql
도구를 사용하여 MySQL 덤프를 복원 할 수 있습니다. 명령 일반 구문은 다음과 같습니다.
mysqld database_name < file.sql
대부분의 경우 가져올 데이터베이스를 작성해야합니다. 데이터베이스가 이미 존재하면 먼저 삭제해야합니다.
다음 예제에서 첫 번째 명령은 database_name이라는
database_name
생성 한 다음
database_name.sql
덤프를 가져옵니다.
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
전체 MySQL 덤프에서 단일 MySQL 데이터베이스 복원
mysql --one-database database_name < all_databases.sql
하나의 명령으로 MySQL 데이터베이스 내보내기 및 가져 오기
한 데이터베이스에서 덤프 파일을 만든 다음 백업을 다른 MySQL 데이터베이스로 가져 오는 대신 다음 단일 라이너를 사용할 수 있습니다.
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
위의 명령은 출력을 원격 호스트의 mysql 클라이언트로 파이프하고
remote_database_name
이라는 데이터베이스로 가져옵니다. 명령을 실행하기 전에 데이터베이스가 원격 서버에 이미 존재하는지 확인하십시오.
Cron으로 백업 자동화
데이터베이스 백업 프로세스를 자동화하는 것은 지정된 시간에 mysqldump 명령을 실행하는 크론 작업을 작성하는 것만 큼 간단합니다.
cronjob을 사용하여 MySQL 데이터베이스의 자동 백업을 설정하려면 다음 단계를 수행하십시오.
-
사용자 홈 디렉토리에
.my.cnf
라는 파일을 작성하십시오.sudo nano ~/.my.cnf
다음 텍스트를 복사하여.my.cnf 파일에 붙여 넣습니다.
user = dbuser password = dbpasswd
dbuser
및dbpasswd
를 데이터베이스 사용자 및 사용자 비밀번호로 바꾸는 것을 잊지 마십시오.사용자 만이 액세스 할 수 있도록 신임 정보 파일의 권한을 제한하십시오.
chmod 600 ~/.my.cnf
백업을 저장할 디렉토리를 작성하십시오.
mkdir ~/db_backups
사용자 crontab 파일을여십시오.
crontab -e
매일 오전 3시에 데이터베이스 이름
mydb
의 백업을 작성하는 다음 cron 작업을 추가하십시오.0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
사용자 이름을 실제 사용자 이름으로 바꾸는 것을 잊지 마십시오.
30 일보다 오래된 백업을 삭제하기 위해 다른 cronjob을 생성 할 수도 있습니다.
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
물론 백업 위치 및 파일 이름에 따라 명령을 조정해야합니다. find 명령에 대한 자세한 내용은 명령 줄을 사용하여 Linux에서 파일을 찾는 방법 안내서를 참조하십시오.
결론
이 튜토리얼은 기본 사항 만 다루지 만 mysqldump 유틸리티를 사용하여 명령 줄에서 MySQL 데이터베이스를 생성하고 복원하는 방법을 배우려는 사람에게는 좋은 출발점이 될 것입니다.
또한 잊어 버린 경우 MySQL 루트 암호를 재설정하는 방법에 대한 자습서를 확인할 수도 있습니다.
mysql mariadb 백업 mysqldumpMySQL 데이터베이스를 비롯하여 많은 오픈 소스 소프트웨어를 보유하고있다. 수익 창출. 지난해 1 월 MySQL에 10 억 달러를 지불 한 끝에 지난 분기에 MySQL 라이선스 및 관련 인프라 판매가 8100 만 달러에 그쳤다.
IBM과 썬의 합병이 실현된다면 두 회사 모두에게 이익이 될 것이며, IDC의 유럽 시스템 인프라 솔루션 프로그램 디렉터 인 나다니엘 마르티네즈 (Nathaniel Martinez)는 말했다. "MySQL과 관련하여 IBM을 서비스 부문으로 끌어 들이면 미래에이를 실제 달러로 전환 할 수있을 것"이라고 그는 말했다.
MySQL Cofounder, Oracle이 데이터베이스를 판매해야한다고 말한다
Oracle은 오픈 소스 데이터베이스 MySQL을 공동 창업자이자 제작자 인 Michael "Monty"Widenius "오라클은 공개 소스 데이터베이스 MySQL을 적절한 제 3 자에게 판매함으로써 썬 마이크로 시스템 인수에 대한 독점 금지 문제를 해결해야한다고 공동 창립자이자 창시자 인 마이클"몬티 "위 데니 어스가 월요일 블로그 포스트에서 밝혔다.
커맨드 라인을 통해 리눅스에서 mysql 데이터베이스를 만드는 방법
이 자습서에서는 명령 줄을 사용하여 MySQL 또는 MariaDB 데이터베이스를 만드는 방법에 대해 설명합니다.