mysql資料庫備份腳本
1、復制date文件夾備份
============================
假想環境:
MySQL 安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
資料庫備份目的地:C:\db_bak\
============================
新建db_bak.bat,寫入以下代碼
*******************************Code Start*****************************
net stop mysql
x c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10%\ /S /I
net start mysql
*******************************Code End *****************************
然後使用Windows的「計劃任務」定時執行該批處理腳本即可。(例如:每天凌晨3點執行back_db.bat)
解
釋:備份和恢復的操作都比較簡單,完整性比較高,控制備份周期比較靈活,例如,用%date:~0,10%。此方法適合有獨立主機但對mysql沒有管理
經驗的用戶。缺點是佔用空間比較多,備份期間mysql會短時間斷開(例如:針對30M左右的資料庫耗時5s左右),針對%date:~0,10%的用法
參考 。
2、mysqlmp備份成sql文件
==============
假想環境:
MySQL 安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
MySQL root 密碼:123456
資料庫備份目的地:D:\db_backup\
腳本:
rem *******************************Code Start*****************************
@echo off
set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
C:\MySQL\bin\mysqlmp --opt -u root --password=123456 bbs > D:\db_backup\bbs_%Ymd%.sql
@echo on
rem *******************************Code End*****************************
將以上代碼保存為backup_db.bat
然後使用Windows的「計劃任務」定時執行該腳本即可。(例如:每天凌晨5點執行back_db.bat)
說明:此方法可以不用關閉資料庫,並且可以按每一天的時間來名稱備份文件。
通過%date:~5,2%來組合得出當前日期,組合的效果為yyyymmdd,date命令得到的日期格式默認為yyyy-mm-dd(如果不是此格式可以通過pause命令來暫停命令行窗口看通過%date:~,20%得到的當前計算機日期格式),所以通過%date:~5,2%即可得到日期中的第五個字元開始的兩個字元,例如今天為2009-02-05,通過%date:~5,2%則可以得到02。(日期的字元串的下標是從0開始的)
3、利用WinRAR對MySQL資料庫進行定時備份。
對於MySQL的備份,最好的方法就是直接備份MySQL資料庫的Data目錄。下面提供了一個利用WinRAR來對Data目錄進行定時備份的方法。
首先當然要把WinRAR安裝到計算機上。
將下面的命令寫入到一個文本文件里
*******************************Code Start*****************************
net stop mysql
c:\progra~1\winrar\winrar a -ag -k -r -s d:\mysql.rar d:\mysql\data
net start mysql
*******************************Code End*****************************
保存,然後將文本文件的擴展名修改成CMD。進入控制面版,打開計劃任務,雙擊「添加計劃任務」。在計劃任務向導中找到剛才的CMD文件,接著為這個任務指定一個運行時間和運行時使用的賬號密碼就可以了。
這種方法缺點是佔用時間比較多,備份期間壓縮需要時間,mysql斷開比第一種方法更多的時間,但是對於文件命名很好。
② 怎麼備份遠程mysql資料庫的腳本文件
在MySQL中進行數據備份的方法有兩種:
1. mysqlhot
這個命令會在拷貝文件之前會把表鎖住,並把數據同步到數據文件中,以避免拷貝到不完整的數據文件,是最安全快捷的備份方法。
命令的使用方法是:
mysqlhot -u root -p<rootpass> db1 db2 … dbn <output_dir>
如果需要備份全部資料庫,可以加上–regexp=」.*」參數。
Mysqlhot命令可自動完成數據鎖定工作,備份時不用關閉伺服器。它還可以刷新日誌,使備份文件和日誌文件的檢查點能保持同步。
2. mysqlmp
這個命令是用來把資料庫倒成sql文件的,是非常古老的命令了。
命令的使用方法是:
mysqlmp -u root -p<rootpass> –hex-blob db1 > db1.sql
加上–hex-blob參數以後,blob數據會被類似BASE64的方法轉換為文本來存儲在sql文件中,就不會導致sql文件格式問題了。經過測試,通過這種方法備份的blob數據再重新恢復回去能夠完全正確。
如果要備份所有的資料庫,可以加上–all-databases參數。
用mysqlmp命令還可直接把資料庫轉移到另外一台伺服器上,不用生成備份文件。重復執行可定期更新遠程資料庫。
% mysqladmin -h remote_host create testdb
% mysqlmp –opt testdb | mysql -h remote_host testdb
另外還可通過ssh遠程調用伺服器上的程序,如:
% ssh remote_host mysqladmin create testdb
③ 求一份自動備份mysql資料庫的腳本。
@rem---------------------------創建備份目錄-----------------------------------------
@echooff
setbackup_dir=D:/數據備份
setbackup_dir_run=D:/數據備份/run
setbackup_dir_land=D:/數據備份/land
setlog_file=%backup_dir%/backup_record.log
ifnotexist"%backup_dir_run%"md"%backup_dir_run%"
ifnotexist"%backup_dir_land%"md"%backup_dir_land%"
@rem---------------------------創建備份目錄結束-------------------------------------
@rem---------------------------取得當前時間-----------------------------------------
setyear=%date:~0,4%
::當前年
setmonth=%date:~5,2%
::當前月
setday=%date:~8,2%
::當前日
sethour=%time:~0,2%
::當前小時
setminute=%time:~3,2%
::當前分鍾
setmydate=%year%%month%%day%
setmytime=%hour%%minute%
@rem---------------------------取得當前時間結束-------------------------------------
@rem---------------------------設置標簽-------------------------------------
settag_long=echo-------------------------------------------------->>%log_file%
settag_short=echo...>>%log_file%
@rem---------------------------設置結束-------------------------------------
@rem---------------------------備份資料庫-------------------------------------------
%tag_long%
echo-------------正在執行MySQL資料庫備份[%date%%time%]-------------->>%log_file%
%tag_long%
%tag_short%
%tag_short%
setcmd_mysql=D:/WEBROOT/mysql50/bin/mysqlmp-R-uroot-p111
echo導出d_land_run...>>%backup_dir%/backup_record.log
setsqlfile_d_land_run="%backup_dir_land_run%/d_run%mydate%%mytime%.sql"
ifexist%sqlfile_d_land_run%del%sqlfile_d_land_run%
%cmd_mysql%d_land_run>%sqlfile_d_land_run%
echo導出d_land_run結束...>>%log_file%
%tag_short%
%tag_short%echo導出d_run...>>%backup_dir%/backup_record.log
setsqlfile_d_run="%backup_dir_run%/d_run%mydate%%mytime%.sql"
ifexist%sqlfile_d_run%del%sqlfile_d_run%
%cmd_mysql%d_run>%sqlfile_d_run%
echo導出d_run結束...>>%log_file%
%tag_short%
%tag_short%echo導出d_run_shop...>>%log_file%
setsqlfile_d_run_shop="%backup_dir_run%/d_run_shop%mydate%%mytime%.sql"
ifexist%sqlfile_d_run_shop%del%sqlfile_d_run_shop%
%cmd_mysql%d_run_shop>%sqlfile_d_run_shop%
echo導出d_run_shop結束...>>%log_file%%tag_short%
%tag_short%echo導出bugs...>>%log_file%
setsqlfile_bugs="%backup_dir_land%/bugs%mydate%%mytime%.sql"
ifexist%sqlfile_bugs%del%sqlfile_bugs%
%cmd_mysql%bugs>%sqlfile_bugs%
echo導出bugs結束...>>%log_file%%tag_short%
%tag_short%echo導出discuz...>>%log_file%
setsqlfile_discuz="%backup_dir_land%/discuz%mydate%%mytime%.sql"
ifexist%sqlfile_discuz%del%sqlfile_discuz%
%cmd_mysql%discuz>%sqlfile_discuz%
echo導出discuz結束...>>%log_file%
%tag_short%
%tag_short%
echo導出land...>>%log_file%
setsqlfile_land="%backup_dir_land%/land%mydate%%mytime%.sql"
ifexist%sqlfile_land%del%sqlfile_land%
%cmd_mysql%land>%sqlfile_land%
echo導出land結束...>>%log_file%
%tag_short%
%tag_short%
echo導出landwiki...>>%log_file%
setsqlfile_landwiki="%backup_dir_land%/landwiki%mydate%%mytime%.sql"
ifexist%sqlfile_landwiki%del%sqlfile_landwiki%
%cmd_mysql%landwiki>%sqlfile_landwiki%
echo導出landwiki結束...>>%log_file%
%tag_short%
%tag_short%
echo導出mysql...>>%log_file%
setsqlfile_mysql="%backup_dir_land%/mysql%mydate%%mytime%.sql"
ifexist%sqlfile_mysql%del%sqlfile_mysql%
%cmd_mysql%mysql>%sqlfile_mysql%
echo導出mysql結束...>>%log_file%
%tag_short%
%tag_short%
echo導出wikidb...>>%log_file%
setsqlfile_wikidb="%backup_dir_land%/wikidb%mydate%%mytime%.sql"
ifexist%sqlfile_wikidb%del%sqlfile_wikidb%
%cmd_mysql%wikidb>%sqlfile_wikidb%
echo導出wikidb結束...>>%log_file%
%tag_short%
%tag_short%
echo-------------備份完成![%date%%time%]-------------->>%log_file%
@rem---------------------------備份資料庫結束---------------------------------------
④ mysql中備份和還原資料庫的語句什麼啊
一、Mysql資料庫備份指令格式:
mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 (–database) 資料庫名 > 文件名.sql
註:直接cmd執行該指令即可,不需要先mysql -u root -p鏈接資料庫
1、備份MySQL資料庫的命令
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql
2、備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql
二、資料庫還原有三種方式:source命令、mysql、gunzip命令
1、source 命令
進入mysql資料庫控制台,
mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
⑤ 如何使用shell腳本每天自動備份mysql資料庫
mysql備份用自帶的備份工具mysqlmp
每天自動執行用cron工具,把mysql的備份命令放在.sh文件裡面
.sh文件放在/etc/cron.daily目錄,就會每天自動執行了。
⑥ mysql資料庫如何備份
MySQL資料庫備份與還原
備份和恢復數據
生成SQL腳本
在控制台使用mysqlmp命令可以用來生成指定資料庫的腳本文本,但要注意,腳本文本中只包含資料庫的內容,而不會存在創建資料庫的語句!所以在恢復數據時,還需要自已手動創建一個資料庫之後再去恢復數據。
mysqlmp –u用戶名 –p密碼 資料庫名>生成的腳本文件路徑
現在可以在C盤下找到mydb1.sql文件了!
注意,mysqlmp命令是在Windows控制台下執行,無需登錄mysql!!!
執行SQL腳本
執行SQL腳本需要登錄mysql,然後進入指定資料庫,才可以執行SQL腳本!!!
執行SQL腳本不只是用來恢復資料庫,也可以在平時編寫SQL腳本,然後使用執行SQL 腳本來操作資料庫!大家都知道,在黑屏下編寫SQL語句時,就算發現了錯誤,可能也不能修改了。所以我建議大家使用腳本文件來編寫SQL代碼,然後執行之!
SOURCE C:\mydb1.sql
注意,在執行腳本時需要先行核查當前資料庫中的表是否與腳本文件中的語句有沖突!例如在腳本文件中存在create table a的語句,而當前資料庫中已經存在了a表,那麼就會出錯!
還可以通過下面的方式來執行腳本文件:
mysql -uroot -p123 mydb1<c:\mydb1.sql
mysql –u用戶名 –p密碼 資料庫<要執行腳本文件路徑
這種方式無需登錄mysql!
⑦ windows server2008系統實現mysql自動備份資料庫腳本
路徑有空格的話 需要添加引號
@echooff
set"Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
C:"ProgramFiles"MySQL"MySQLServer5.1"inmysqlmp.exe--opt-uroot--password=rootwelfare>D:data_backwelfare_%Ymd%.sql
@echoon
⑧ 怎麼備份和還原mysql資料庫
備份資料庫
使用mysqlmp命令備份資料庫
⑨ 請問mysql怎麼自動備份資料庫
資料庫的自動備份,可以減輕維護者的工作量也便於系統恢復,對於比較重要的資料庫,最好還是設置下自動備份。
工具/原料
navicat for mysql
mysql 5.5
方法/步驟
打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。
⑩ linux系統下mySQL資料庫 備份方法和腳本
資料庫備份
1.創建個備份存儲目錄
mkdir
/root/backup/
2.以下內容寫到dbbackup.sh
#!/bin/bash
cd
/root/backup/
mysqlmp
-uroot
-pmima123
datatest
>/root/backup/datatest`date
+%Y-%m-%d`.sql
mysqlmp
-uroot
-pmima123
datatest1
>/root/backup/datatest1`date
+%Y-%m-%d`.sql
chmod
+x
dbbackup.sh