linux實現mysql數據庫每天自動定時備份

      自身是使用阿里雲服務器操作,操作不同視情況而定。

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


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章