當前位置:首頁 » 數據倉庫 » mysql多資料庫備份
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

mysql多資料庫備份

發布時間: 2023-05-29 12:31:26

㈠ mysql怎麼備份多個的資料庫

這個要用到mysql下的存取過程了,先把下面的那段代碼做為了一個批處理文件,命名為:
mysql_bak.bat
具體的操作步驟如下:

1. 將上面的兩段代碼分別保存為 mysql_bak.bat 並根據注釋修改相關參數
確定好目錄之後,運行 mysql_bak.bat 將計劃任務添加到系統中。
2. Windows Server 2003 / XP 可以通過 開始,控制面板,計劃任務進入計劃任務管理界面;
Windows Vista / 7 可以通過 計算機,右鍵,管理,系統工具,任務計劃程序,任務計劃程序庫,進入計劃任務管理界面。
3. 手動運行該任務,查看備份目錄來確認下備份是否成功。

具體實現在代碼:

@echo off & setlocal ENABLEEXTENSIONS
:: ---------- 配置項 ----------
:: 備份放置的路徑,加 \
set BACKUP_PATH=D:\Backup\
:: 要備份的資料庫名稱,多個用空格分隔
set DATABASES=database1 database2 database3
:: MySQL 用戶名
set USERNAME=root
:: MySQL 密碼
set PASSWORD=123456
:: MySQL Bin 目錄,加 \
:: 如果可以直接使用 mysqlmp(安裝時添加 MySQL Bin 目錄到了環境變數),此處留空即可
set MYSQL=D:\SERVER\MySQL\bin\
:: WinRAR 自帶命令行工具的可執行文件路徑,長文件名注意用 Dos 長文件名書寫方式
set WINRAR=C:\Progra~1\WinRAR\Rar.exe
:: ---------- 以下請勿修改 ----------

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
:: 如果在 dos 下輸入 time 返回的不是 24 小時制(沒有 0 填充),請自行修改此處
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

set DIR=%BACKUP_PATH%%YEAR%\%MONTH%\%DAY%\
set ADDON=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%
:: create dir
if not exist %DIR% (
mkdir %DIR% 2>nul
)
if not exist %DIR% (
echo Backup path: %DIR% not exists, create dir failed.
goto exit
)
cd /d %DIR%
:: backup
echo Start mp databases...
for %%D in (%DATABASES%) do (
echo Dumping database %%D ...
%MYSQL%mysqlmp -u%USERNAME% -p%PASSWORD% %%D > %%D.%ADDON%.sql 2>nul
:: winrar
if exist %WINRAR% (
%WINRAR% a -k -r -s -m1 -ep1 %%D.%ADDON%.rar %%D.%ADDON%.sql 2>nul
del /F /S /Q %%D.%ADDON%.sql 2>nul
)
)
echo Done

:exit

㈡ 如何備份整個mysql資料庫

1、首先打開mysql資料庫軟體進入軟體主界面。

㈢ mysql資料庫如何備份

【答案】:您好,有一個方法供您參考!
啟動phpMyAdmin察看HostA和HostB中的資料庫列表,在HostB中沒有TestA資料庫,找到HostA中MySQL的安裝目錄,並找到資料庫目錄data,然後,在C:MySQL data 找到對應資料庫名稱的子目錄C:MySQLdataTestA,粘貼拷貝到HostB的Data目錄下,是HostA同HostB MySQL數據目錄下的文件相同,刷新HostB的phpMyAdmin察看一下資料庫列表宴判弊,我們看到TestA已經出現,並且作查詢修改等操作都正常,備份沖塵恢晌族復恢復成功。

㈣ 怎樣備份mysql中所有的資料庫(sql怎麼備份資料庫)

關鍵字:mysql還亂穗原或者導入橘搭資料庫命令:

mysql-uroot--password=root

備份資料庫命令:

mysqlmp-uroot--password=root--databasehelloworld>helloworld_backup.sql

其他用法:

1.導出整個資料庫

mysqlmp-u用戶名-p資料庫名>導出的文件名

mysqlmp-uwcnc-psmgp_apps_wcnc>wcnc.sql

2.導出一個表

mysqlmp-u用戶名-p資料庫名表名>導出的文件名

mysqlmp-uwcnc-psmgp_apps_wcncusers>wcnc_users.sql

3.導出一個資料庫結構

mysqlmp-uwcnc-p-d--add-drop-tablesmgp_apps_wcnc>d:wcnc_db.sql

-d沒有數據--add-drop-table在每個create語句之前增加一個droptable

4.導入資料庫

常用source命令

進入mysql數嘩伍卜據庫控制台,如mysql-uroot-p

mysql>use資料庫

然後使用source命令,後面參數為腳本文件(如這里用到的.sql)

mysql>sourced:wcnc_db.sql

㈤ 如何備份MYSQL資料庫

定期的備份可使我們資料庫崩潰造成的損失大大降低。在MySQL中進行數據備份的方法有兩種,一種是使用mysqlmp程序,一種是使用mysqlhot、cp、tar或cpio等打包程序直接拷貝資料庫文件。mysqlmp程序備份資料庫較慢,但它生成的文本文件便於移植。使用mysqlhot等程序備份速度快,因為它直接對系統文件進行操作,需人為協調資料庫數據的備份前後一致性。

使用mysqlmp備份資料庫其實就是把資料庫轉儲成一系列CREATE TABLE和INSERT語句,通過這些語句我們就可重新生成資料庫。使用mysqlmp的方法如下:

% mysqlmp --opt testdb | gzip > /data/backup/testdb.bak
#--opt選項會對轉儲過程進行優化,生成的備份文件會小一點,後的管道操作會進行數據壓縮
% mysqlmp --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak
#可在資料庫後接數據表名,只導出指定的數據表,多個數據表可用逗號分隔

--opt選項還可激活--add-drop-table選項,它將會在備份文件的每條CREATE TABLE前加上一條DROP TABLE IF EXISTS語句。這可方便進行數據表的更新,而不會發生「數據表已存在」的錯誤。

用mysqlmp命令還可直接把資料庫轉移到另外一台伺服器上,不用生成備份文件。重復執行可定期更新遠程資料庫。

% mysqladmin -h remote_host create testdb
% mysqlmp --opt testdb | mysql -h remote_host testdb
另外還可通過ssh遠程調用伺服器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqlmp --opt testdb | ssh remote_host mysql testdb

通過直接拷貝系統文件的方式備份資料庫,在備份時,要確保沒有人對資料庫進行修改操作。要做到這點,最好關閉伺服器。如果不能關閉的,要以只讀方試鎖定有關數據表。下面是一些示例:

% cp -r db /backup/db #備份db資料庫到/backup/db目錄
% cp table_name.* /backup/db #只備份table_name數據表
% scp -r db remotehot:/usr/local/mysql/data #用scp把資料庫直接拷貝到遠程伺服器

在把資料庫直接拷貝到遠程主機時,應注意兩台機器必須有同樣的硬體結構,或者將拷貝的數據表全部是可移植數據表類型。

使用mysqlhot工具,它是一個Perl DBI腳本,可在不關閉伺服器的情況下備份資料庫,它主要的優點是:

它直接拷貝文件,所以它比mysqlmp快。

可自動完成數據鎖定工作,備份時不用關閉伺服器。

能刷新日誌,使備份文件和日誌文件的檢查點能保持同步。

下面是該工具的使用示例:

% mysqlhot db /bakcup/ #把db資料庫備份到backup/db目錄里,會自動創建一個db目錄

使用BACKUP TABLE語句進行備份,該語句最早出現在MySQL 3.23.25版本中,僅適用於MyISAM數據表。用法如下:

mysql> BACKUP TABLE mytable TO '/backup/db'; #把mytable數據表備份到/backup/db目錄下

為了執行該語句,你必須擁有那些表的FILE許可權和SELECT許可權,備份目錄還必須是伺服器可寫的。該語句執行時,會先把內存中的數據寫入磁碟,再把各個數據表的.frm(表結構定義文件)、.MYD(數據)文件從數據目錄拷貝到備份目錄。它不拷貝.MYI(索引)文件,因為它能用另外兩個文件重建。BACKUP TABLE語句備份時,依次鎖定數據表,當同時備份多個數據表時,數據表可能會被修改,所以備份0完成時,備份文件中的數據和現時數據表中的數據可能會有差異,為了消除該差異,我們可用只讀方式鎖定數據表,在備份完成後再解鎖。如:

mysql> LOCK TABLES tb1 READ,tb2 READ;
mysql> BACKUP TABLE tb1,tb2 TO 'backup/db';
mysql> UNLOCK TABLE

㈥ 如何實現MySQL資料庫的備份與恢復

在資料庫表丟失或損壞的情況下 備份你的資料庫是很重要的 如果發生系統崩潰 你肯定想能夠將你的表盡可能丟失最少的數據恢復到崩潰發生時的狀態 有時 正是MySQL管理員造成破壞 管理員已經知道表以破壞 用諸如vi或Emacs等編輯器試圖直接編輯它們 這對表絕對不是件好事!備份資料庫兩個主要方法是用mysqlmp程序或直接拷貝資料庫文件(如用cp cpio或tar等) 每種方法都有其優缺點 mysqlmp與MySQL伺服器協同操作 直接拷貝方法在伺服器外部進行 並且你必須採取措施保證沒有客戶正在修改你將拷貝的表 如果你想用文件系統備份來備份資料庫 也會發生同樣的問題 如果資料庫表在文件系統備份過程中被修改 進入備份的表文件主語不一致的狀態 而對以後的恢復表將失去意義 文件系統備份與直接拷貝文件的區別是對後者你完全控制了備份過程 這樣你能採取措施確保伺服器讓表不受干擾 mysqlmp比直接拷貝要慢些 mysqlmp生成能夠移植到其它機器的文本文件 甚至那些有不同硬體結構的機器上 直接拷貝文件不能移植到其它機器上 除非你正在拷貝的表使用MyISAM存儲格式 ISAM表只能在相似的硬體結構的機器上拷貝 在MySQL 中引入的MyISAM表存儲格式解決了該問題 因為該格式是機器無關的 所以直接拷貝文件可以移植到具有不同硬體結構的機器上 只要滿足兩個條件 另一台機器必須也運行MySQL 或以後版本 而且文件必須以MyISAM格式表示 而不是ISAM格式 不管你使用哪種備份方法 如果你需要恢復資料庫 有幾個原則應該遵守 以確保最好的結果 定期實施備份 建立一個計劃並嚴格遵守 讓伺服器執行更新日誌 當你在崩潰後需要恢復數據時 更新日誌將幫助你 在你用備份文件恢復數據到備份時的狀態後 你可以通過運行更新日誌中的查詢再次運用備份後面的修改 這將資料庫中的表恢復到崩潰信手發生時的狀態 以文件系統備份的術語講 資料庫備份文件代表完全傾倒(full mp) 而更新日誌代表漸進傾倒(incremental mp) 使用一種統一的和易理解的備份文件命名機制 象backup buckup 等不是特別有意義 當坦羨實施你的恢復時 你將浪費時間找出文件里是什麼東西 你可能發覺用資料庫名和日期構成備份文件名會很有用 例如 %mysqlmp samp_db >/usr/archives/mysql/samp_db %mysqlmp menagerie >/usr/archives/mysql/menagerie 你可能想在生成備份後壓縮它們 備份一般都很大!你也需要讓你的備份文件有過期期限以避免它們填滿你的磁碟 就象你讓你的日誌文件過期那樣 用文件系統備份備份你的備份文件 如果遇上了一個徹底崩潰 不僅清除了你的數據目錄 也清除了包含你的資料庫備份的磁碟驅動器 你將真正遇上了麻煩 也要備份你的更新日誌 將你的備份文件放在不同於用於你的資料庫的文件系統上 這將降低由於生成備份而填滿包含數據目錄的文件系統的可能性 用於創建備份的技術同樣對拷貝資料庫到另一台機器有用 最常見地 一個資料庫被轉移到了運行在另一台主機上的伺服器 但是你也可以將數據轉移到同一台主機上的另一個伺服器 使用mysqlmp備份和拷貝資料庫 當你使用mysqlmo程序產生資料庫備份文件時 預設地 文件內容包含創建正在傾倒的表的CREATE語句和包含表中行數據的INSERT語句 換句話說 mysqlmp產生的輸出可在以後用作mysql的輸入來重建資料庫 你可以將整個資料庫傾倒進一個單獨的文本文件中 如下 滑信嫌%mysqlmp samp_db >/usr/archives/mysql/samp_db 輸出文件的開頭看起來象這樣 # MySQL Dump ## Host: localhost Database: samp_db# # Server version alpha log## Table structure for table absence #CREATE TABLE absence(student_id int( ) unsigned DEFAULT NOT NULL date date DEFAULT NOT NULL PRIMARY KEY (student_id date));## Dumping data for table absence #INSERT INTO absence VALUES ( );INSERT INTO absence VALUES ( );INSERT INTO absence VALUES ( ); 文件剩下的部分有更多的INSERT和CREATE TABLE語句組成 如果你想壓縮備份 使用類似如下的命令 %mysqlmp samp_db | gzip >/usr/archives/mysql/samp_db gz如果你要一個龐大的資料庫 輸出文件也將很龐大 可能難於管理 如果你願意 你可以在mysqlmp命令行的資料庫名後列出單獨的表名來傾到它們的內容 這將傾倒文件分成較小 更易於管理的文件 下例顯示如何將samp_db資料庫的一些表傾到進分開的文件中 %mysqlmp samp_db student score event absence >grapbook sql%mysqlmp samp_db member president >hist league sql如果你生成准備用於定期刷新另一個資料庫內容的備份文件 你可能想用 add drop table選項 這告訴伺服器將DROP TABLE IF EXISTS語句寫入備份文件 然後 當你取出備份文件並把它裝載進第二個資料庫時 如果表已經存在 你不會得到一個錯誤 如果你倒出一個資料庫以便能把資料庫轉移到另一個伺服器 你甚至不必創建備份文件 要保證資料庫存在於另一台主機 然後用管道傾倒資料庫 這樣mysql能直接讀取mysqlmp的輸出 例如 你想從主機拷貝資料庫samp_db到 可以這樣很容易做到 %mysqladmin h create samp_db%mysqlmp samp_db | mysql h samp_db以後 如果你想再次刷新上的資料庫 跳過mysqladmin命令 但要對mysqlmp加上 add drop table以避免的得到表已存在的錯誤 %mysqlmp add drop table samp_db | mysql h samp_dbmysqlmp其它有用的選項包括 flush logs和 lock tables組合將對你的資料庫檢查點有幫助 lock tables鎖定你正在傾倒的所有表 而 flush logs關閉並重新打開更新日誌文件 新的更新日誌將只包括從備份點起的修改資料庫的查詢 這將設置你的更新日誌檢查點位備份時間 (然而如果你有需要執行個更新的客戶 鎖定所有表對備份期間的客戶訪問不是件好事 )如果你使用 flush logs設置檢查點到備份時 有可能最好是傾倒整個資料庫 如果你傾倒單獨的文件 較難將更新日誌檢查點與備份文件同步 在恢復期間 你通常按資料庫為基礎提取更新日誌內容 對單個表沒有提取更新的選擇 所以你必須自己提取它們 預設地 mysqlmp在寫入前將一個表的整個內容讀進內存 這通常確實不必要 並且實際上如果你有一個大表 幾乎是失敗的 你可用 quick選項告訴mysqlmp只要它檢索出一行就寫出每一行 為了進一步優化傾倒過程 使用 opt而不是 quick opt選項打開其它選項 加速數據的傾倒和把它們讀回 用 opt實施備份可能是最常用的方法 因為備份速度上的優勢 然而 要警告你 opt選項確實有代價 opt優化的是你的備份過程 不是其他客戶對資料庫的訪問 opt選項通過一次鎖定所有表阻止任何人更新你正在傾倒的任何錶 你可在一般資料庫訪問上很容易看到其效果 當你的資料庫一般非常頻繁地使用 只是一天一次地調節備份 一個具有 opt的相反效果的選項是 dedayed 該選項使得mysqlmp寫出INSERT DELAYED語句而不是INSERT語句 如果你將數據文件裝入另一個資料庫並且你想是這個操作對可能出現在該資料庫中的查詢的影響最小 delayed對此很有幫助 press選項在你拷貝資料庫到另一台機器上時很有幫助 因為它減少網路傳輸位元組的數量 下面有一個例子 注意到 press對與遠端主機上的伺服器通信的程序才給出 而不是對與本地主機連接的程序 %mysqlmp opt samp_db | mysql press h samp_dbmysqlmp有很多選項 詳見《MySQL參考手冊》 使用直接拷貝資料庫的備份和拷貝方法 另一種不涉及mysqlmp備份資料庫和表的方式是直接拷貝資料庫表文件 典型地 這用諸如cp tar或cpio實用程序 本文的例子使用cp 當你使用一種直接備份方法時 你必須保證表不在被使用 如果伺服器在你則正在拷貝一個表時改變它 拷貝就失去意義 保證你的拷貝完整性的最好方法是關閉伺服器 拷貝文件 然後重啟伺服器 如果你不想關閉伺服器 要在執行表檢查的同時鎖定伺服器 如果伺服器在運行 相同的制約也適用於拷貝文件 而且你應該使用相同的鎖定協議讓伺服器 安靜下來 假設伺服器關閉或你已經鎖定了你想拷貝的表 下列顯示如何將整個samp_db資料庫備份到一個備份目錄(DATADIR表示伺服器的數據目錄) %cd DATADIR%cp r samp_db /usr/archive/mysql單個表可以如下備份 %cd DATADIR/samp_db%cp member * /usr/archive/mysql/samp_db%cp score * /usr/archive/mysql/samp_db 當你完成了備份時 你可 lishixin/Article/program/MySQL/201311/29384

㈦ 請問mysql怎麼自動備份資料庫

資料庫的自動備份,可以減輕維護者的工作量也便於系統恢復,對於比較重要的資料庫,最好還是設置下自動備份。

工具/原料



navicat for mysql

mysql 5.5

方法/步驟

  1. 打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。


㈧ mysql資料庫怎麼備份資料庫

1、備份一個資料庫
mysqlmp基本語法:
mysqlmp -u username -p dbname table1 table2 ...-> BackupName.sql
2、直接復制整個資料庫目錄MySQL有一種非常簡單的備份方法,就是將MySQL中的資料庫文件直接復制出來。這是最簡單,速度最快的方法。
3、使用mysqlhot工具快速備份

㈨ 怎樣備份mysql 中所有的資料庫

關鍵字: mysql 還原或者導入資料庫命令:

mysql -u root --password=root

備份資料庫命令:

mysqlmp -u root --password=root --database helloworld >helloworld_backup.sql

其他用法:

1.導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名表名> 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導出一個資料庫結構
mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

-d 沒有數據 --add-drop-table 在每個create語句之前增加一個drop table

4.導入資料庫
常用source 命令
進入mysql資料庫控制台,
如mysql -u root -p

mysql>use 資料庫

然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source d:\wcnc_db.sql

㈩ 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!