一、用命令備份數據庫
1. 一般備份:mysqldump -u 數據庫登錄名 -p [數據庫登錄密碼] 數據庫 > 備份路徑/文件名 .sql
2.備份成壓縮包:mysqldump -u 數據庫登錄名 -p [數據庫登錄密碼] 數據庫 | gzip > 備份路徑/文件名 .sql.gz
實例:注意 要先創建一個備份位置的文件夾。
mysqldump -uroot -p mynewdatabase20200512 > /usr/local/mysql_backup/mynewdatabase.sql
二、恢復數據庫:
mysql -uusername -ppassword databasename < backupfile.sql
實例:
mysql -uroot -p mynewdatabase20200512 < /usr/local/mysql_backup/mynewdatabase.sql
以下參考自:Linux下實現MySQL數據備份和恢復的命令使用全攻略
備份MySQL數據庫的命令 :
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
備份MySQL數據庫爲帶刪除表的格式 備份MySQL數據庫爲帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接將MySQL數據庫壓縮備份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
備份MySQL數據庫某個(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同時備份多個MySQL數據庫
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
僅僅備份數據庫結構
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
備份服務器上所有數據庫
mysqldump –all-databases > allbackupfile.sql
還原MySQL數據庫的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
還原壓縮的MySQL數據庫
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
將數據庫轉移到新服務器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
命令中 -hhostname可以不用。
二、創建定時任務執行備份:crontab -e
1.使用vi命令,創建腳本文件:文件名.sh,文件內容爲linux命令
2.創建定時任務備份數據庫
命令:crontab -e 回車 打開一個空的文件,編輯方法同vi,格式爲
* * * * * 腳本文件文件路徑
不明這個啥意思的,可以用這個命令查看:cat /etc/crontab 定時任務的格式。
示例:
(1)10 * * * * 腳本文件文件路徑.sh
每小時過10分鐘時執行腳本文件:即在 10:10 11:10 12:10 ......等等時執行文件,實際上是每一小時執行一次。
(2)*/10 * * * * 腳本文件文件路徑.sh
每隔10分鐘執行一次腳本文件:即 10:10 10:20 10:30 ....等等 每過十分鐘執行一次。
crontab -l 查看當前用戶下的定時任務,定時任務文件目錄 爲/var/spool/cron/ 文件名爲系統登錄用戶的名稱
crontab -r 刪除所有定時任務。
#定時刪除指定文件
find 路徑 -mtime N -name '文件名.後綴名' -exec rm -rf {} \;
實例:
find /usr/local/mysql_backup -mtime +1 -name '*.sql' -exec rm -rf {} \;
-mtime n 按照文件的更改時間來找文件,n爲整數。
n表示文件更改時間距離爲n天, -n表示文件更改時間距離在n天以內,+n表示文件更改時間距離在n天以前。
例如:
-mtime 0 表示文件修改時間距離當前爲0天的文件,即距離當前時間不到1天(24小時)以內的文件。
-mtime 1 表示文件修改時間距離當前爲1天的文件,即距離當前時間1天(24小時-48小時)的文件。
-mtime+1 表示文件修改時間爲大於1天的文件,即距離當前時間2天(48小時)之外的文件
-mtime -1 表示文件修改時間爲小於1天的文件,即距離當前時間1天(24小時)之內的文件
爲什麼-mtime+1 表示文件修改時間爲大於1天的文件,即距離當前時間48小時之外的文件,而不是24小時之外的呢?
因爲n值只能是整數,即比1大的最近的整數是2,所有-mtime+1不是比當前時間大於1天(24小時),而是比當前時間大於2天(48小時)。
數字N的參考文獻:Linux命令之find命令中的-mtime參數
附:給文件授權:命令 chmod -R abc 文件名 a b c 分別表示授予owner group other 用戶的權限值
Unix系統的權限分三種,分別是擁有者(Owner)、用戶組(Group)、其它用戶(Other),用ls的-l參數可以查看文件的權限。
圖片來源文件授權,很好的文章
-
r = 4: 讀
-
w = 2: 寫
-
x = 1: 執行
使用 ls 文件 -ll 命令 可以查看文件權限。
journalctl -e??
journalctl | grep bkemp