自身是使用阿里雲服務器操作,操作不同視情況而定。
1、查看磁盤空間情況:
既然是定時備份,就要選擇一個空間充足的磁盤空間,避免出現因空間不足導致備份失敗,數據丟失的惡果!
存儲到當前磁盤這是最簡單,卻是最不推薦的;服務器有多塊硬盤,最好是把備份存放到另一塊硬盤上;有條件就選擇更好更安全的存儲介質;
# df -h
2、創建備份文件
mkdir /data/mysqlbackup
cd /data/mysqlbackup
3、編寫備份腳本代碼: vi dbbackup.sh
#!/bin/sh
#-h後面改爲自己的ip
#-u後面改爲自己的數據庫賬號
#-p後面改爲自己的數據庫密碼,有字符需要加""
#demand_database改爲你想要備份的數據庫名稱
echo "開始備份數據庫";
#導出所有數據庫 username 替換爲自己mysql登陸名,password123登陸密碼
## mysqldump -h106.14.XX.XXX -uusername -p"password123" --all-databases > /data/mysqlbackup/databaseName`date +%Y-%m-%d_%H%M%S`.sql;
#導出指定數據庫並壓縮
mysqldump -h106.14.XX.XXX -uusername -p"password123" demand_database| gzip > /data/mysqlbackup/databaseName`date +%Y-%m-%d_%H%M%S`.sql.gz;
cd /data/mysqlbackup;
#刪除3天前的備份文件
rm -rf `find . -name '*.sql.gz' -mtime 3`;
echo "備份完成";
4、更改備份腳本權限
chmod +x dbbackup.sh
5、用crontab定時執行備份腳本代碼: crontab -e
若每天晚上2點00備份,添加如下代碼:
00 2 * * * /data/mysqlbackup/dbbackup.sh
具體時間可以自己設置請參考http://man.linuxde.net/crontab
6、測試任務是否執行
任務執行失敗了,可以通過以下命令查看任務日誌:
tail -f /var/log/cron
7、mysqldump 幾個參數
mysqldump -uroot –proot --quick --no-create-info --extended-insert --default-character-set=utf-8 test>test.sql
參數說明:
--quick:用於轉儲大的表,強制mysqldump從服務器一次一行的檢索數據而不是檢索所有行,並輸出當前cache到內存中
--no-create-info:不要創建create table語句
--extended-insert:使用包括幾個values列表的多行insert語法,這樣文件更小,IO也小,導入數據時會非常快
--default-character-set=utf-8:按照原有字符集導出數據,這樣導出的文件中,所有中文都是可見的,不會保存成亂碼
8、錯誤情況 :
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect
1、密碼有字符是否加了雙引號"password";
2、添加自身ip地址:-h106.14.XX.XXX