Windows 서버에서 MySQL 데이터베이스 자동 백업
지정된 서버에 대해 하루 중 특정 시간에 MySQL 데이터베이스를 자동으로 백업하거나 첨부 파일이 포함된 이메일을 보낼 수 있는 방법이 있습니까?이를 달성하기 위한 가장 좋고 안전한 방법은 무엇이라고 생각하십니까?
이를 위한 가장 좋은 방법은
mysqldump.exe --user=YourUserName --password=YourPassword --host=localhost --port=3306 --result-file="Path\dump.sql" --databases "DatabaseName1" "Database2"
mysqldump.exe --user=root --password=root --host=localhost --port=3306 --result-file="c:\www\db\backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql" --default-character-set=utf8 --single-transaction=TRUE --databases "dbtest1" "dbtest2"
패턴backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql
고유한 이름을 만듭니다(backup20131010.sql
) 실행될 때마다
이제 작업 스케줄러에서 이 명령을 호출하기만 하면 됩니다.바로 그거예요 :)
Windows Task Scheduler/cron(시스템에 따라 다름)과 mysqdump를 사용합니다.링크에서 아래로 스크롤하면 원하는 것을 달성하는 방법에 대한 통찰력이 포함됩니다.
다음 명령 중 하나를 에 추가할 수 있습니다.Windows task scheduler
:
mysqldump –-user [username] –-password=[password] [database name] > [dump file]
또는 콤팩트한 방식으로:
mysqldump –u[username] –p[password] [database name] > [dump file]
또는:
mysqldump -u[user] -p[password] --result-file="c:\<path>\backup.%DATE:~0,3%.sql" [database]
databaseW.2016,06,29-22,31,48-15.sql
@echo off
rem Backup Database (Daily,via Task Scheduler)
rem databaseW
set filename="c:\xampp\dbk\databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
c:\xampp\mysql\bin\mysqldump.exe --user=root --password=dell@root --host=localhost --port=3306 --result-file=%filename% --default-character-set=utf8 --single-transaction=TRUE --databases "databaseW"
날짜 및 시간을 기준으로 이름이 지정된 파일을 만들려면 다음을 사용합니다.%date%
그리고.%time%
두 변수는 로케일 및 cmd 셸 버전을 기반으로 합니다.
- cmd 창을 엽니다.
- 입력
echo %time%
그리고.echo %date%
나의 것은22:11:16.80
,06/29/2016 Wed
- 변수를 통과시키다
%variable:~startpos,length%
쉼표로 구분된 시간을 원합니다. 그러면 cmd가echo %time:~0,2%,%time:~3,2%,%time:~6,2%,%time:~9,2%
- 다음과 같은 파일 이름을 가져옵니다.
databaseW.2016,06,29-22,31,48-15.sql
사용하다set filename="databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
- 확인합니다.
date
그리고.time
미리 - 을 사용합니다.
--result-file
대신 옵션>
Mysql Manuel에 따르면, ">"를 사용하여 저장된 파일의 문자 집합은UTF-16
그 사이에--result-file
다음에--default-character-set
- 파일에 저장
BackpDay-databaseW.cmd
- 새 태스크에 추가
Action
트리거를 설정합니다(Windows 작업 스케줄러)
다른 사람들이 설명한 것과 유사한 일을 했습니다.거의 차이가 없고 추가 작업 없이:
나는 배치 파일을 만들었습니다.
Windows 스케줄러를 통해 해당 배치 파일 실행
해당 작업에 적합한 일정을 작성
배치 파일 내에서 다음 단계가 실행됩니다.
- 4-1) 현재 날짜를 기준으로 파일명 작성
- 4-2) mysqdump의 지원을 받았습니다.해당 디렉토리 및 파일 이름의 exe
- 4-3) 7-Zip app을 통해 압축파일을 만든 후(설치) 압축되지 않은 백업을 삭제합니다.
- 4-4) 네트워크 파일 서버에 복사본 작성
다음은 스크립트(.bat) 샘플입니다.
@echo off
set current=%date:~10,4%%date:~4,2%%date:~7,2%
set filename="E:\MySQL Backups\DBName-%current%.sql"
set filename2="E:\MySQL Backups\DBName-%current%.zip"
echo %filename%
cd "E:\MySQL Backups"
C:\"Program Files"\MySQL\"MySQL Server 5.5"\bin\mysqldump.exe db_name --user=root --password=rootpass --host="127.0.0.1" --port=instancePort --result-file=%filename% --default-character-set=utf8 --single-transaction=TRUE
echo backup-finished
if exist %filename% (
"C:\Program Files\7-Zip\7z.exe" a %filename2% %filename%
echo zip-finished
del %filename%
)
if exist %filename2% (
copy %filename2% "\\192.168.x.x\MySQL Backups"
echo copy-finished
)
언급URL : https://stackoverflow.com/questions/14666819/mysql-database-backup-automatically-on-a-windows-server
'programing' 카테고리의 다른 글
JSF를 Spring MVC의 뷰 기술로 활용 (0) | 2023.09.05 |
---|---|
View Pager에서 조각 검색 (0) | 2023.09.05 |
파이썬 팬더와 퍼지 매치 병합을 할 수 있습니까? (0) | 2023.09.05 |
CSS3 선택기: 클래스 이름을 가진 첫 번째 유형? (0) | 2023.09.05 |
mariadb 10.3의 해당 mysql 버전 (0) | 2023.09.05 |