技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費軟件下載基地!

當(dāng)前位置:主頁 > 教程 > 服務(wù)器類 >

Linux下mysql數(shù)據(jù)庫備份方法

來源:技術(shù)員聯(lián)盟┆發(fā)布時間:2018-10-11 18:08┆點擊:

  通過mysql提供的功能

  導(dǎo)出

  命令:

  mysqldump -u 用戶名 -p 數(shù)據(jù)庫 > 數(shù)據(jù)庫.sql

  示例:

 代碼如下   復(fù)制代碼  

mysqldump -u root -p db1 > db1.sql(將數(shù)據(jù)庫db1備份到db1.sql中)

 

  提示輸入密碼,完成即可。

  導(dǎo)入

  需要先創(chuàng)建一個空數(shù)據(jù)庫

  mysql -u root -p(輸入密碼后進(jìn)入mysql)

  create database db1;(創(chuàng)建一個名為db1的數(shù)據(jù)庫)

  exit(退出mysql)

  命令:

  mysql -u 用戶名 -p 數(shù)據(jù)庫 < 數(shù)據(jù)庫.sql

  示例:

 代碼如下   復(fù)制代碼  

mysql -u root -p db1 < db1.sql(從備份文件db1.sql中導(dǎo)入數(shù)據(jù)到數(shù)據(jù)庫db1中)

 

  提示輸入密碼,完成即可。

  通過拷貝文件

  如果數(shù)據(jù)庫特別大,可以使用拷貝的方式進(jìn)行備份,不過不同的操作系統(tǒng)間可能會導(dǎo)致不兼容。

  導(dǎo)出

  進(jìn)入mysql目錄,打包需要備份的數(shù)據(jù)庫目錄

  示例:

 代碼如下   復(fù)制代碼  

cd /var/lib/mysql(進(jìn)入mysql目錄)
tar -zcvf db1.tar.gz db1(打包db1目錄,如果提示沒有權(quán)限,在前面加上sudo,提示輸入密碼后即可)

 

  導(dǎo)入

  首先創(chuàng)建一個空數(shù)據(jù)庫,將打包的文件拷貝到mysql目錄后解壓

  示例:

 代碼如下   復(fù)制代碼  


mysql -u root -p(輸入密碼后進(jìn)入mysql)
create database db1;(創(chuàng)建一個名為db1的數(shù)據(jù)庫)
exit(退出mysql)
cp db1.tar.gz /var/lib/mysql(將打包文件拷貝到mysql目錄下)
cd /var/lib/mysql(進(jìn)入mysql目錄)
tar -zxvf db1.tar.gz(解壓到當(dāng)前目錄)

 

  后現(xiàn)在linux中腳本

 代碼如下   復(fù)制代碼  

#!/bin/bash
#Mysql autobackup shell#write by tuspark.cn
#-------------------數(shù)據(jù)庫相關(guān)的用戶名、密碼、需要備份的數(shù)據(jù)庫名、備份目錄等
dbuser=root
dbpasswd=XXXXX
dbserver=localhost
dbname=XXXXX
dbopt=--opt
backupdir=http://www.3lian.com/dcbackup/
#-------------------是否開啟FTP遠(yuǎn)程備份,0為否,1為是。
copytoftp=1
ftpserver=XXXXX
ftpuser=XXXXX
ftppasswd=XXXXX
#-------------------以下參數(shù)
fileprefix=dcradiusdump
filename=$backupdir`date +%F`.sql
newfile=$fileprefix-`date +%F`.tar.gz
keepdays=10
#-------------------以下為備份時的日志
logfile=http://www.3lian.com/var/log/mysqlbackup.log
logtmp=http://www.3lian.com/var/log/mybackup.tmp
#===============================================
if [ ! -d $backupdir ]
then
echo "$backupdir is not exist, then make ..." >> $logfile
mkdir -p $backupdir
fi
echo "start====================================>">>$logfile
echo "Beginning backup `date '+%F %T'`" >>$logfile
echo "Delete $keepdays days ago files ..." >>$logfile
find $backupdir -name $fileprefix* -mtime +$keepdays -fls $logtmp -exec rm {} ;
echo "Deleted Backup file is :">>$logfile
cat $logtmp >>$logfile
echo "Delete old file Success!" >>$logfile
if [ -f $backupdir$newfile ]
then
echo "$newfile backup exist, backup stop ..." >>$logfile
else
if [ -z $dbpasswd ]
then
mysqldump -u$dbuser -h$dbserver $dbopt $dbname >$dumpfilename
else
mysqldump -u$dbuser -p$dbpasswd -h$dbserver $dbopt $dbname >$dumpfilename
fi
tar czvf $backupdir$newfile $dumpfilename >>$logfile 2>&1
echo "$backupdir$newfile Backup Success!" >>$logfile
rm -fr $dumpfilename
if [ $copytoftp = 1 ]; then
if [ -z $ftpserver ];then
echo "Ftp Server not set,Copy to Ftp Failed ..." >>$logfile
exit 1
elif [ -z $ftpuser ];then
echo "Ftp user not set, Copy to Ftp Failed ..." >>$logfile
exit 2
elif [ -z $ftppasswd ]; then
echo "Ftp password not set, Copy to Ftp Failed ..." >>$logfile
exit 3
else
echo "Start copy to Ftp server ...." >> $logfile
ftp -n>$logfile
fi