MySQL數(shù)據(jù)庫備份&還原-LINUX
手動備份:
1. 備份一個數(shù)據(jù)庫
mysqldump -hhostname -uusername -pmypwd databasename > /path to backup/bakname.sql
備份并壓縮
mysqldump -hhostname -uusername -pmypwd databasename | gzip > /path to backup/bakname.sql.gz2. 備份多個數(shù)據(jù)庫
mysqldump -hhostname -uusername -pmypwd databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql3. 備份數(shù)據(jù)庫一些表
mysqldump -hhostname -uusername -pmypwd databasename table1 table2 table3 > /path to backup/bakname.sql4. 僅備份數(shù)據(jù)庫結(jié)構(gòu)
mysqldump -no-data -databases databasename1 databasename2 databasename3 > /path to backup/bakname.sql5. 備份所有數(shù)據(jù)庫
mysqldump -all-databases > /path to backup/bakname.sql
還原數(shù)據(jù)庫
1. 還原無壓縮數(shù)據(jù)庫
mysql -h(huán)hostname -uuser -pmypwd databasename < /path to backup/bakname.sql2. 還原壓縮數(shù)據(jù)庫
gunzip < /path to backup/bakname.sql.gz | mysql -hhostname -uusername -pmypwd databasename
遷移到新服務(wù)器
mysqldump -hhostname -uuser -pmypwd databasename | mysql -hnew_hostname -C databasename
腳本定時備份
-
創(chuàng)建備份腳本
vim mysql_backup.sh
#!/bin/sh # This is a mysql datbase backup shell script. # set mysql info hostname="localhost" user="root" password="my password" # set database info database="bak database name" bakpath="path to backup" date=$(date +%Y%m%d_%H%M%S) # backup mkdir -p $bakpath mysqldump -h$hostname -u$user -p$password $database | gzip \ > $bakpath/$database_$date_sql.gz -
創(chuàng)建定時任務(wù)
crontab: crontab 是linux系統(tǒng)下的一個任務(wù)調(diào)度器
crontab定時服務(wù) 啟動|結(jié)束|狀態(tài)
service crond start | status | stop# 查看config文件,可以看到定時規(guī)則 $ cat /etc/cron # 添加備份定時任務(wù) $ crontab -e 添加定時計劃,例如:每天2點執(zhí)行 0 2 * * * /path to sh/mysql_backup.sh 保存退出 # 查看當(dāng)前用戶定時任務(wù) $ crontab -l #查看定時計劃日志 $ tail -f /var/log/cron 定時跟蹤