Ⅰ mysql用mysqlmp命令備份之後不能正確還原
還原用mysql命令,不是mysqlmp
Ⅱ mysql怎麼通過備份還原資料庫文件
一、數據備份
1、使用mysqlmp命令備份
mysqlmp命令將資料庫中的數據備份成一個文本文件。表的結構和表中的數據將存儲在生成的文本文件中。
mysqlmp命令的工作原理很簡單。它先查出需要備份的表的結構,再在文本文件中生成一個CREATE語句。然後,將表中的所有記錄轉換成一條INSERT語句。然後通過這些語句,就能夠創建表並插入數據。
1、備份一個資料庫
mysqlmp基本語法:
mysqlmp -u username -p dbname table1 table2 ...-> BackupName.sql
其中:
dbname參數表示資料庫的名稱;
table1和table2參數表示需要備份的表的名稱,為空則整個資料庫備份;
BackupName.sql參數表設計備份文件的名稱,文件名前面可以加上一個絕對路徑。通常將資料庫被分成一個後綴名為sql的文件;
使用root用戶備份test資料庫下的person表
mysqlmp -u root -p test person > D:\backup.sql
其生成的腳本如下:
文件的開頭會記錄MySQL的版本、備份的主機名和資料庫名。
文件中以「--」開頭的都是SQL語言的注釋,以"/*!40101"等形式開頭的是與MySQL有關的注釋。40101是MySQL資料庫的版本號,如果MySQL的版本比1.11高,則/*!40101和*/之間的內容就被當做SQL命令來執行,如果比4.1.1低就會被當做注釋。
2、備份多個資料庫
語法:
mysqlmp -u username -p --databases dbname2 dbname2 > Backup.sql
加上了--databases選項,然後後面跟多個資料庫
mysqlmp -u root -p --databases test mysql > D:\backup.sql
3、備份所有資料庫
mysqlmp命令備份所有資料庫的語法如下:
mysqlmp -u username -p -all-databases > BackupName.sql
示例:
mysqlmp -u -root -p -all-databases > D:\all.sql
2、直接復制整個資料庫目錄
MySQL有一種非常簡單的備份方法,就是將MySQL中的資料庫文件直接復制出來。這是最簡單,速度最快的方法。
不過在此之前,要先將伺服器停止,這樣才可以保證在復制期間資料庫的數據不會發生變化。如果在復制資料庫的過程中還有數據寫入,就會造成數據不一致。這種情況在開發環境可以,但是在生產環境中很難允許備份伺服器。
注意:這種方法不適用於InnoDB存儲引擎的表,而對於MyISAM存儲引擎的表很方便。同時,還原時MySQL的版本最好相同。
3、使用mysqlhot工具快速備份
一看名字就知道是熱備份。因此,mysqlhot支持不停止MySQL伺服器備份。而且,mysqlhot的備份方式比mysqlmp快。mysqlhot是一個perl腳本,主要在Linux系統下使用。其使用LOCK TABLES、FLUSH TABLES和cp來進行快速備份。
原理:先將需要備份的資料庫加上一個讀鎖,然後用FLUSH TABLES將內存中的數據寫回到硬碟上的資料庫,最後,把需要備份的資料庫文件復制到目標目錄。
命令格式如下:
[root@localhost ~]# mysqlhot [option] dbname1 dbname2 backupDir/
dbname:資料庫名稱;
backupDir:備份到哪個文件夾下;
常用選項:
--help:查看mysqlhot幫助;
--allowold:如果備份目錄下存在相同的備份文件,將舊的備份文件加上_old;
--keepold:如果備份目錄下存在相同的備份文件,不刪除舊的備份文件,而是將舊的文件更名;
--flushlog:本次輩分之後,將對資料庫的更新記錄到日誌中;
--noindices:只備份數據文件,不備份索引文件;
--user=用戶名:用來指定用戶名,可以用-u代替;
--password=密碼:用來指定密碼,可以用-p代替。使用-p時,密碼與-p之間沒有空格;
--port=埠號:用來指定訪問埠,可以用-P代替;
--socket=socket文件:用來指定socket文件,可以用-S代替;
mysqlhot並非mysql自帶,需要安裝Perl的資料庫介麵包;下載地址為:http://dev.mysql.com/downloads/dbi.html
目前,該工具也僅僅能夠備份MyISAM類型的表。
二、數據還原
1、還原使用mysqlmp命令備份的資料庫的語法如下:
mysql -u root -p [dbname] < backup.sq
示例:
mysql -u root -p < C:\backup.sql
2、還原直接復制目錄的備份
通過這種方式還原時,必須保證兩個MySQL資料庫的版本號是相同的。MyISAM類型的表有效,對於InnoDB類型的表不可用,InnoDB表的表空間不能直接復制。
Ⅲ 求mysql 備份,還原的sql語句(不是命令)
建議使用mysqlmp
在相當長的時間內,mysqlmp是MySQL提供的唯一的備份工具。
當然現在不是啦,還有mysqlhot等一些備份工具
用法:
$
mysqlmp
-u
root
-proot
-x
--databases
ftp
>;
mp.sql
x選項用來在備份的時候鎖住相應的資料庫,以保證數據安全
恢復:
$
mysql
-u
root
-proot
<
mp.sql
另外最好寫個腳本,用crontab定時執行
這樣會省好多力氣
Ⅳ 如何使用命令來備份和還原MySQL資料庫
備份資料庫
使用mysqlmp命令備份資料庫
復制代碼代碼如下:
# 如果要將game資料庫進行備份:
mysqlmp -u root -p game > game_backup.sql
# 如果希望備份所有的資料庫:
mysqlmp -u root -p --all-databases > all_backup.sql
還原資料庫
1、使用mysql命令還原資料庫
將game_backup.sql 還原至 game 資料庫:
復制代碼代碼如下:
mysql -u root -p game < game_backup.sql
2、使用source命令還原資料庫
如果資料庫過大,建議可以使用source命令
復制代碼代碼如下:
mysql> source game_backup.sql
Ⅳ 如何使用mysqlmp命令備份mysql資料庫
方法/步驟
開始——運行——輸入cmd,確定
進入Dos命令行下,輸入mysqlmp --help,可以先熟悉mysqlmp的幫助信息
注意:
如果安裝時配置了bin路徑則可以直接輸入mysqlmp --help命令
如果安裝時沒有配置了bin路徑則需要切換到mysql安裝目錄下的bin目錄下輸入mysqlmp --help命令
在幫助信息里可以看到命令的基本格式如下:
Usage:
mysqlmp [OPTIONS] database [tables]
OR mysqlmp [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqlmp [OPTIONS] --all-databases [OPTIONS]
備份或導出整個資料庫
輸入mysqlmp -uroot -p test > test.sql 回車後輸入輸入root的密碼即可
命令解釋:
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
這樣打開我的電腦就可以在當前目錄看到導出的文件了
備份或導出資料庫中一個表
輸入mysqlmp -uroot -p phpmyadmin pma_bookmark > pma_bookmark.sql 回車後輸入輸入root的密碼即可
命令解釋:
mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名
這樣就可以在當前目錄看到導出的文件了。
就可以還原或導入到別的資料庫伺服器上了。
補充:
關於msyql其他命令怎麼使用,可以點擊作者名片,在經驗列表中找到。
Ⅵ windows下Mysql 怎樣備份和還原
前提是把MYSQL的安裝路徑\bin添加到系統環境變數PATH中了。
備份:mysqlmp -u root -p123456 kcgl> c:\20090219.sql
mysqlmp 備份命令
root 用戶名(root管理員)
123456 密碼
kcgl 備份的資料庫名;
> 備份符號
20090219.sql 備份的文件名
還原:
mysql -u root -p123456 kcgl< c:\20090219.sql
mysql 還原命令
root 用戶名(root管理員)
123456 密碼
dbcurr 備份的資料庫名;
< 還原符號
20090219.sql還原的文件名
注意:首先要確保你的mysql 中有kcgl這個庫,還原命令是不會自動建庫的。
mysqlmp 遠程備份
mysqlmp -h ip -uroot -proot database > c:\data.sql
---------其他---------
mysqlmp備份:
mysqlmp -u用戶名 -p密碼 -h主機 資料庫 a -w "sql條件" --lock-all-tables > 路徑
案例:
mysqlmp -uroot -p1234 -hlocalhost db1 a -w "id in (select id from b)" --lock-all-tables > c:\aa.txt
mysqlmp還原:
mysqlmp -u用戶名 -p密碼 -h主機 資料庫 < 路徑
案例:
mysql -uroot -p1234 db1 < c:\aa.txt
mysqlmp按條件導出:
mysqlmp -u用戶名 -p密碼 -h主機 資料庫 a --where "條件語句" --no-建表> 路徑
mysqlmp -uroot -p1234 dbname a --where "tag='88'" --no-create-info> c:\a.sql
mysqlmp按導入:
mysqlmp -u用戶名 -p密碼 -h主機 資料庫 < 路徑
案例:
mysql -uroot -p1234 db1 < c:\a.txt
mysqlmp導出表:
mysqlmp -u用戶名 -p密碼 -h主機 資料庫 表
案例:
mysqlmp -uroot -p sqlhk9 a --no-data
-------------------------------------------------
mysqlmp命令介紹
--all-databases, -A: 備份所有資料庫
--databases, -B: 用於備份多個資料庫,如果沒有該選項,mysql mp 把第一個名字參數作為資料庫名,後面的作為表名。使用該選項,mysql m把每個名字都當作為資料庫名。
--force, -f:即使發現sql錯誤,仍然繼續備份
--host=host_name, -h host_name:備份主機名,默認為localhost
--no-data, -d:只導出表結構
--password[=password], -p[password]:密碼
--port=port_num, -P port_num:制定TCP/IP連接時的埠號
--quick, -q:快速導出
--tables:覆蓋 --databases or -B選項,後面所跟參數被視作表名
--user=user_name, -u user_name:用戶名
--xml, -X:導出為xml文件
1.備份全部資料庫的數據和結構
mysql mp -uroot -p123456 -A >F:\all.sql
2.備份全部資料庫的結構(加 -d 參數)
mysql mp -uroot -p123456 -A -d>F:\all_struct.sql
3.備份全部資料庫的數據(加 -t 參數)
mysql mp -uroot -p123456 -A -t>F:\all_data.sql
4.備份單個資料庫的數據和結構(,資料庫名mydb)
mysql mp -uroot -p123456 mydb>F:\mydb.sql
5.備份單個資料庫的結構
mysql mp -uroot -p123456 mydb -d>F:\mydb.sql
6.備份單個資料庫的數據
mysql mp -uroot -p123456 mydb -t>F:\mydb.sql
7.備份多個表的數據和結構(數據,結構的單獨備份方法與上同)
mysql mp -uroot -p123456 mydb t1 t2 >f:\multables.sql
8.一次備份多個資料庫
mysql mp -uroot -p123456 --databases db1 db2 >f:\muldbs.sql
還原部分分(1)mysql 命令行source方法 和 (2)系統命令行方法
1.還原全部資料庫:
(1) mysql 命令行:mysql >source f:\all.sql
(2) 系統命令行: mysql -uroot -p123456 <f:\all.sql
2.還原單個資料庫(需指定資料庫)
(1) mysql >use mydb
mysql >source f:\mydb.sql
(2) mysql -uroot -p123456 mydb <f:\mydb.sql
3.還原單個資料庫的多個表(需指定資料庫)
(1) mysql >use mydb
mysql >source f:\multables.sql
(2) mysql -uroot -p123456 mydb <f:\multables.sql
4.還原多個資料庫,(一個備份文件里有多個資料庫的備份,此時不需要指定資料庫)
(1) mysql 命令行:mysql >source f:\muldbs.sql
(2) 系統命令行: mysql -uroot -p123456 <f:\muldbs.sql
Ⅶ mysql在dos命令下備份還原資料庫
mysqlmp不是mysql查詢語言不能在mysql> 下面執行。
mysqlmp【導出】 應該為一種dos命令【在成功安裝來mysql的電腦上】,所以你在mysql\bin目錄執行即可 如:........mysql\bin\ mysqlmp -u root -p dbcurr> d:\20090219.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!
Ⅸ mysql備份資料庫表命令
Mysqlmp命令用於備份資料庫,語法為 mysqlmp -h 資料庫地址 -u root -p test資料庫 〉test.sql