linux實現mysql資料庫每天自動定時備份

2021-09-13 15:53:55 字數 2240 閱讀 8726

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

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.*** -uusername -p"password123" --all-databases > /data/mysqlbackup/databasename`date +%y-%m-%d_%h%m%s`.sql;

#匯出指定資料庫並壓縮

mysqldump -h106.14.xx.*** -uusername -p"password123" demand_database| gzip > /data/mysqlbackup/databasename`date +%y-%m-%d_%h%m%s`.sql.gz;

#刪除3天前的備份檔案

backupdir=/data/mysqlbackup

db_name=databasename

find $backupdir -name $db_name"*.sql.gz" -type f -mtime +3 -exec rm -rf {} \;

echo "備份完成";

4、更改備份指令碼許可權 

chmod +x dbbackup.sh
5、用crontab定時執行備份指令碼**: crontab -e 

測試 每1分鐘執行一次: */1 * * * *  /data/mysqlbackup/dbbackup.sh   

若每天晚上2點00備份,新增如下**:

00 2 * * * /data/mysqlbackup/dbbackup.sh
具體時間可以自己設定請參考

crontab [-u username] [-l|-e|-r]

引數:-u: 只有root才能進行這個任務,也即幫其他使用者新建/刪除crontab工作排程;

-e: 編輯crontab 的工作內容;

-l: 查閱crontab的工作內容;

-r: 刪除所有的crontab的工作內容,若僅要刪除一項,請用-e去編輯。

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";

rf:

linux下實現mysql資料庫每天自動備份

1.建立備份檔案夾 cd home mkdir backup cd backup 2.建立備份指令碼 vi bkdatabasename.sh bin bash mysqldump uusername ppassword databasename home backup databasename d...

linux備份mysql資料庫

1.匯出命令 匯出 mysqldump u root p 資料庫名稱 資料庫儲存位置及檔名 然後按提示輸入資料庫密碼2.匯入命令 mysql u 使用者名稱 p 資料庫名 3.拷貝 如果資料庫比較大,可以考慮用直接拷貝的方法,但不同版本和作業系統之間可能不相容,要慎用。3.1 將原始資料庫用tar打...

Linux安裝 MySQL資料庫

1 mysql可以通過rpm安裝,對於perl的依懶性可以在安裝時不管,強制安裝,單獨解決 root localhost usr rpm ivh mysql server 5.1.73 1.glibc23.i386.rpm force nodeps 2 解決perl依賴問題,perl的安裝可以隨意,...