1、使用 mysqldump 命令備份數據
1.1 備份全部數據庫的數據和結構
mysqldump -uroot -p123456 -A > /data/backup/db.sql
1.2 備份全部數據庫的結構(加 -d 參數)
mysqldump -uroot -p123456 -A -d > /data/backup/db.sql
1.3 備份全部數據庫的數據(加 -t 參數)
mysqldump -uroot -p123456 -A -t > /data/backup/db.sql
1.4 備份單個數據庫的數據和結構(,數據庫名mydb)
mysqldump -uroot -p123456 -A -t > /data/backup/db.sql
1.5 備份單個數據庫的結構
mysqldump -uroot -p123456 mydb -d > /data/backup/db.sql
1.6 備份單個數據庫的數據
mysqldump -uroot -p123456 mydb -t > /data/backup/db.sql
1.7 備份多個表的數據和結構
mysqldump -uroot -p123456 mydb t1 t2 > /data/backup/db.sql
1.8 備份多個表的數據和結構
mysqldump -uroot -p123456 --databases db1 db2 > /data/backup/db.sql
2、還原 MySQL 備份內容
2.1 系統命令
mysql -uroot -p123456 < /data/backup/db.sql
2.2 使用系統命令登錄mysql(mysql -uroot -p123456)
mysql> source /data/mysqlDump/mydb.sql
注意:
在使用 mysqldump 命令的時候,如果提示 -bash: mysqldump: command not found
解決方法:
可以找到你的 mysql 安裝目錄下面的 bin 目錄
然后給 bin 目錄下面的 mysqldump 建立一個軟連接
eg:
ln -s /data/soft/mysql/install/mysql5.7/bin/mysqldump /usr/bin/mysqldump
3、編寫備份命令腳本
#!/bin/bash#保存備份個數,備份24個月的數據
number=24
#備份保存路徑
backup_dir=/data/backup/sql
#日期
dd=`date +%Y%m%d%H%M%S`
#備份工具
tool=mysqldump
#用戶名
username=root
#密碼
password=123456
#將要備份的數據庫
database_name=blog#如果文件夾不存在則創建
if [ ! -d $backup_dir ];
then mkdir -p $backup_dir;
fi#簡單寫法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql#寫創建備份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt#找出需要刪除的備份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`#判斷現在的備份數量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`if [ $count -gt $number ]
then#刪除最早生成的備份,只保留number數量的備份rm $delfile#寫刪除文件日志echo "delete $delfile" >> $backup_dir/log.txt
fi
注意:
腳本中的換行符號要是 unix 的,如果是 windows 的會報錯。
3、設置定時任務 (crontab)
3.1 使用yum命令安裝Crontab
yum install vixie-cron
yum install crontabs
注:vixie-cron軟件包是cron的主程序;
crontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
cron是linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start #啟動服務
/sbin/service crond stop #關閉服務
/sbin/service crond restart #重啟服務
/sbin/service crond reload #重新載入配置
3.2 查看Crontab狀態
service crond status
ntsysv #查看crontab服務是否已設置為開機啟動
chkconfig –level 35 crond on #加入開機自動啟動
3.3 添加定時任務
crontab -e #編輯cron任務模式
i #默認文字編輯器為vim,按i字母鍵即可添加cron任務
0 0 1 * * /data/backup/sql/mysql_dump_script.sh #將命令代碼放入,此命令意義為每天的03:30 重啟apache
ESC #按ESC鍵退出編輯模式
:wq #鍵入:wq保存
service crond restart #重啟crontab服務
3.4 查看任務列表
crontab -l
注意:
如果添加定時任務的時候出現
crontab: installing new crontab "/tmp/crontab.6ET70C":1: bad day-of-month errors in crontab file, can't install.
這個提示的時候,需要檢查一下你的 cron 表達式是否正確,如果錯誤的話,就會出現這個提示。
eg:
0 0 1 * * crontab 的 cron 表達式是從 minute 分鐘開始的,這里需要注意,可以使用 cat /etc/crontab 命令查看一下。