mysql資料庫備份shell
資料庫的自動備份,可以減輕維護者的工作量也便於系統恢復,對於比較重要的資料庫,最好還是設置下自動備份。
工具/原料
navicat for mysql
mysql 5.5
方法/步驟
打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。
❷ Linux 怎麼shell腳本定時備份mysql資料庫
每天定時備份mysql資料庫任務,刪除指定天數前的數據,保留指定天的數據;
需求:
1,每天4點備份mysql數據;
2,為節省空間,刪除超過3個月的所有備份數據;
3,刪除超過7天的備份數據,保留3個月里的
10號
20號
30號的備份數據;
#創建shell文件
vim
backup_mysql.sh
mysqlmp
-uroot
-p123456
--all-databases
>
/data/dbdata/mysqlbak/`date
+%Y%m%d`.sql
find
/data/dbdata/mysqlbak/
-mtime
+7
-name
'*[1-9].sql'
-exec
rm
-rf
{}
\;
find
/data/dbdata/mysqlbak/
-mtime
+92
-name
'*.sql'
-exec
rm
-rf
{}
\;
#創建定時任務
crontab
–e
0
4
*
*
*
/data/dbdata/backup_mysql.sh
❸ vc中使用ShellExecute進行mysql資料庫備份,一直不成功,有會的嗎
你現在在本地命令行 測試一下 mysqlmp 命令 是否成功 和 生成備份文件.
如果成功了, 那麼說明你 ShellExecute 函數使用方法有問題.
或者也可嘗試更換其他函數 例如 WinExec 等等.
❹ shell怎麼對mysql資料庫進行自動備份
1、計劃任務,每天1點備份
0 1 * * * /data/backup/backup-mysql.sh;
2、backup-mysql.sh內容,將每天備份的內容打包
#!/bin/sh
ymd=`date +%Y%m%d`
cd /data/backup
mysqlmp -uuser001 -p12345678 db001 > db001.sql
tar zcf db001-${ymd}.sql.gz db001.sql
3、restore.sh恢復數據
mysql -uuser001 -p12345678 -Ddb001 < db001.sql
❺ mysql 資料庫如何備份,如圖,
資料庫備份,可以全量備份,也可以備份一部分
備份的方法也有很多種
如果是使用語句進行備份,那麼只能導出數據的內容,不包括表的結構
需要先鎖表,避免備份過程中表被更新
鎖表語句:mysql>LOCK TABLES READ tbl_name;
然後導出數據:mysql>SELECT * INTO OUTFILE_tbl_name.bak『 FROM tbl_name;
最後將表解鎖:mysql>UNLOCK TABLES;
如果是使用工具 mysqlmp 進行備份,就不僅可以導出數據,還可以備份表結構
假如要備份資料庫 db_name:shell> mydqlmp db_name
假如要把資料庫備份到 bd_name.bak 中:shell> mydqlmp db_name>db_name.bak
還可以用直接拷貝的方法進行備份,也就是直接復制文件來備份數據
❻ Linux 怎麼通過Shell腳本定時備份MySQL資料庫
PATH=$PATH:$HOME/bin #備份目錄 BackupPath="/home/mysql/backup" #備份文件名 BackupFile="dbbackup"$(date +%y%m%d_%H)".sql" #資料庫的用戶名及密碼 user="root" passwd="Welcome@123" #檢查備份目錄是否存在 if !(test -d $BackupPath) then mkdir $BackupPath fi #使用mysql提供的mysqlmp備份腳本 /usr/local/mysql/bin/mysqlmp -u$user -p$passwd --allow-keywords --default-character-set=utf8 --set-charset -R -A --master-data=2 >"$BackupPath"/"$BackupFile" #刪除三個月前的備份文件 find "$BackupPath" -name "dbbackup*[log,sql]" -type f -mtime +3 -exec rm -rf {} \;
❼ 使用shell腳本備份資料庫。
在Linux上安裝MySQL並建立測試庫,編寫shell腳本對此庫使用mysqlmp進行定時備份和歷史備份文件清理(保留3天),注意腳本的通用性和擴展性
1 mysq資料庫的安裝
[sql] view plain
#安裝服務端
yum install mysql-server
yum install mysql-devel
#安裝客戶端
yum install mysql
#啟動mysql
service mysqld start 或 /etc/init.d/mysqld start
#停止mysql
service mysqld stop
#設置密碼
mysqladmin -u root password ***
#登錄mysql
mysql -u root -p
2 創建測試資料庫和表
[sql] view plain
<pre class="sql" name="code">#創建資料庫
create database users;
#創建表
create tablse student(
id integer auto_increment not null primary key,
name varchar(30) );
[sql] view plain
#插入一條數據
insert into student(name) values("congju");
[sql] view plain
#查看數據
select * from student;
3 mysqlmp用法
mysql自帶的工具,允許你以SQL命令集的形式將整個資料庫導出到一個單獨的文件中。
[sql] view plain
#將users資料庫備份到/root/user.mp文件中
mysqlmp -u root -p users > /root/users.mp
4 利用shell腳本實現對users資料庫的備份
[sql] view plain
#!/bin/bash
#保存備份個數
number=3
#備份保存路徑
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y%m%d`
#備份工具
tool=mysqlmp
#用戶名
❽ 怎樣進行每日MYSQL資料庫備份
可以將這個腳本放進crontab,每天凌晨執行一次,自動備份
這個腳本每天最多隻執行一次,而且只保留最近五天的備份在伺服器上。
#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#Setting
#設置資料庫名,資料庫登錄名,密碼,備份路徑,日誌路徑,數據文件位置,以及備份方式
#默認情況下備份方式是tar,還可以是mysqlmp,mysqldot
#默認情況下,用root(空)登錄mysql資料庫,備份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >>$LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >>$LogFile
else
case $BackupMethod in
mysqlmp)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName >$DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName >$DumpFile
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >>$LogFile 2>&1
else
mysqlhot -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >>$LogFile 2>&1
echo "[$NewFile]Backup Success!" >>$LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >;/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
/etc/init.d/mysqld start >;/dev/null 2>&1
echo "[$NewFile]Backup Success!" >>$LogFile
;;
esac
fi
echo "-------------------------------------------" >>$LogFile
❾ 如何使用shell腳本每天自動備份mysql資料庫
mysql備份用自帶的備份工具mysqlmp
每天自動執行用cron工具,把mysql的備份命令放在.sh文件裡面
.sh文件放在/etc/cron.daily目錄,就會每天自動執行了。
❿ 編寫一個shell腳本每天16:30備份mysql數據並壓縮打包(打包文件按照當天日期命名)放到/root/data下
#!/bin/bash
date=$(date-d'+0days''+%Y-%m-%d')#聲明一個變數,並賦值當天日期
cd/root/data#進入目錄
mkdir$date#創建目錄
mysqlmp-uusername-ppassworddb_name>$date"db_name.sql"#資料庫備份,修改用戶名密碼,還有要備份資料庫
tar-zcf$date".tar.gz"$date#壓縮打包
rm-rf$date#刪除源數據
保存為bak.sh,每天16:30備份定時任務,沒有crontab命令:yum install vixie-cron
chmod +x /.../bak.sh
crontab -e
30 16 * * * /.../bak.sh