取消mysql自动备份文件_MySQL自动备份并清理多少天前的备份文件
自動備份一、利用mysql提供的mysqldump工具進行數據庫的導入導出二、使用shell命令執行mysqldump/usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql注解:1、執行/usr/local/mysql/bin/mysqldump? mysql安裝目錄bin目錄下的可執行文件;2、--opt是quick,add-drop-table,add-locks,extended-insert,lock-tables幾個參數的名稱,一般都要使用,具體意思自行搜索;3、-u數據庫用戶名 -p數據庫密碼 -h數據庫地址 數據庫名 > 導出的文件路徑4、`date+%F`是shell中生成當前日期,格式如2018-05-30,所以成功導出的文件名為mcpsms_titan_2015-05-30.sql;5、檢查生成的sql文件是否有問題三、整理shell腳本,方便重用#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin"??????????? #the mysql bin pathBCK_DIR="/usr/local/sql/back"??? #the backup file directoryDATE=`date +%F`# TODO# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME? > $BCK_DIR/mcpsms_titan_$DATE.sql四、測試shell腳本1、進入腳本文件目錄chmod +x sqlAutoBak.sh添加執行權限2、https://jinwanmeng.iteye.com/blog/sqlAutoBak.sh如果mysql包含多個實例,需要指定sock文件,修改腳本為:#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin"??????????? #the mysql bin pathBCK_DIR="/usr/local/sql/back"??? #the backup file directoryDATE=`date +%F`# TODO# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock? -h$DB_HOST $DB_NAME > $BCK_DIR/mcpsms_titan_$DATE.sql五、壓縮mysql備份數據sqlAutoBak.sh修改如下:#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin"??????????? #the mysql bin pathBCK_DIR="/usr/local/sql/back"??? #the backup file directoryDATE=`date +%F`# TODO# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock? -h$DB_HOST $DB_NAME | gzip > $BCK_DIR/mcpsms_titan_$DATE.sql.gz壓縮一定要寫在后面,不然會報錯如果該數據庫的用戶沒有分配鎖表的權限,則備份會報錯when using LOCK TABLES。那是因為mysqldump命令默認在導出時是要鎖定表的,所以解決方式有兩個。一個是給用戶開放鎖表的權限;另一個是在命令中加上--skip-lock-tables這個參數。即是:#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin"??????????? #the mysql bin pathBCK_DIR="/usr/local/sql/back"??? #the backup file directoryDATE=`date +%F`# TODO# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock? -h$DB_HOST $DB_NAME --skip-lock-tables | gzip > $BCK_DIR/mcpsms_titan_$DATE.sql.gz六、設置linux定時任務執行腳本1、編輯定時任務列表crontab -e2、插入下面這一行00 05 * * * /bin/sh /usr/local/sql/sqlAutoBak.sh#每天早上5:00執行3、查看任務是否創建成功crontab -l七、第二天檢查自動生成的sql文件是否符合要求自動刪除N天前備份的數據文件一、刪除文件命令find 對應目錄 -mtime +天數 -name "文件名" -exec rm -rf {} \;二、計劃任務1、創建shell腳本touch /usr/local/sql/sqlAutoDel.shchmod +x sqlAutoDel.sh新建一個執行文件,并且分配權限2、編輯shell腳本#!/bin/shfind /usr/local/sql/back/ -mtime +2 -name ‘*.gz‘ -exec rm -rf {} \;保存退出3、計劃任務crontab -e將sqlAutoDel.sh加入到計劃任務中10 05 * * * /bin/sh /usr/local/sql/sqlAutoDel.sh >/dev/null 2>&1#每天早上5:10執行清理任務
總結
以上是生活随笔為你收集整理的取消mysql自动备份文件_MySQL自动备份并清理多少天前的备份文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3.6 mysql 教程_P
- 下一篇: mysql数据库有触发器吗_MySQL数