• Home
  • About
    • lahuman photo

      lahuman

      열심히 사는 아저씨

    • Learn More
    • Facebook
    • LinkedIn
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Mysql 백업 정리

18 May 2022

Reading time ~1 minute

mysql 백업

  • MYSQL 설치 위치 : /database/mysql/bin

백업을 하기 위해서 비밀번호 없이 접근할 수 있는 설정을 생성해야 합니다.

# /database/mysql/bin 에서 실행

# mysql_config_editor set --login-path=설정이름 --host=주소 --user=아이디 --port=포트 --password

$ mysql_config_editor set --login-path=myroot --host=localhost --user=root --password
Enter password: *****

#설정을 사용하여 접속
$ mysql --login-path=myroot
..
mysql> 

설정이 완료 되면 backup.sh 파일을 생성 합니다.

# backup.sh 파일

#!/bin/bash

BACKUP_DIR='/database/backup'
BACKUP_DT=`date '+%Y%m%d%H%M%S'`
BACKUP_FILE=${BACKUP_DT}_DAILY.sql

cd $BACKUP_DIR

echo "# Daily Backup Start."

/database/mysql/bin/mysqldump --login-path=myroot --single-transaction --all-databases > ${BACKUP_DIR}/${BACKUP_FILE}

echo "# Backup ${BACKUP_FILE}"

tar cvzf ${BACKUP_DIR}/${BACKUP_FILE}.tar.gz ${BACKUP_FILE}
rm ${BACKUP_DIR}/${BACKUP_FILE}

echo "# Zip ${BACKUP_FILE}.tar.gz"

echo "# REMOVE Over 3 Days File"

find ${BACKUP_DIR} -name '*.tar.gz' -type f -mtime +3 -delete

echo '# End'

위를 실행하면 전체 database를 백업 후 압축 하게 됩니다.

crontab에 매일 또는 2일에 한번씩 위의 파일이 실행되게 하면, 백업이 든든하게 됩니다!

추가 팁 복원

백업된 파일의 압축을 풀고 다음의 명령어를 통해서 복원 할 수 있습니다.

# /database/mysql/bin 에서 실행

$ mysql --login-path=myroot < /database/mysql/backup/압축된파일명.sql

이상으로 백업 및 복원을 마칩니다.!

참고자료

  • 4.6.7 mysql_config_editor — MySQL Configuration Utility


mysqlbackup Share Tweet +1