本文主要給大家介紹windows系統(tǒng)下MySQL的備份及還原詳解,其所涉及的東西,從理論知識(shí)來(lái)獲悉,有很多書(shū)籍、文獻(xiàn)可供大家參考,從現(xiàn)實(shí)意義角度出發(fā),創(chuàng)新互聯(lián)累計(jì)多年的實(shí)踐經(jīng)驗(yàn)可分享給大家。
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括萬(wàn)源網(wǎng)站建設(shè)、萬(wàn)源網(wǎng)站制作、萬(wàn)源網(wǎng)頁(yè)制作以及萬(wàn)源網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,萬(wàn)源網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到萬(wàn)源省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
windows mysql 備份與還原
步驟1:使用mysqldump命令將suppliers表備份到文件C:\bktestdir\suppliers_bk.sql。
mysqldump -u root -p test suppliers > C:\bktestdir\suppliers_bk.sql
步驟2:使用mysql命令還原suppliers表到test數(shù)據(jù)庫(kù)中
DELETE FROM suppliers;
source C:/bktestdir/suppliers_bk.sql;
步驟3:使用SELECT… INTO OUTFILE語(yǔ)句導(dǎo)出suppliers表中的記錄,導(dǎo)出文件位于目錄C:\bktestdir下,名稱(chēng)為suppliers_out.txt
SELECT * FROM test.suppliers INTO OUTFILE "C:/bktestdir/suppliers_out.txt"
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
STARTING BY '<'
TERMINATED BY '>\r\n';
步驟4:使用LOAD DATA INFILE語(yǔ)句導(dǎo)入suppliers_out.txt數(shù)據(jù)到suppliers表。
LOAD DATA INFILE 'C:/bktestdir/suppliers_out.txt' INTO TABLE test.suppliers
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
LINES
STARTING BY '<'
TERMINATED BY '>\r\n';
步驟5:使用musqldump命令將suppliers表中的記錄導(dǎo)出到文件C:\bktestdir\suppliers_html.html。
mysql -u root -p --html --execute="SELECT * FROM suppliers;" test > C:/bktestdir/suppliers_html.html
linux mysql 備份與還原
備份操作
(1)導(dǎo)出指定庫(kù)中的部分表
mysqldump [選項(xiàng)] 庫(kù)名 [表名1] [表名2] .... > /備份路徑/備份文件名
(2)導(dǎo)出一個(gè)或多個(gè)完整的庫(kù)(包括其中所有的表)
mysqldump [選項(xiàng)] --databases 庫(kù)名 1 [庫(kù)名 2] .... > /備份路徑/備份文件名
(3)備份mysql 云服務(wù)器中的所有庫(kù)
mysqldump [選項(xiàng)]--opt --all-databases > /備份路徑/備份文件名
還原操作
mysql [選項(xiàng)] [庫(kù)名] [表名] < /備份路徑/備份文件名
舉例:
隨便找一個(gè)數(shù)據(jù)庫(kù),創(chuàng)建張表插入數(shù)據(jù)
備份(-u 指定登錄用戶(hù) -p 數(shù)據(jù)庫(kù)名 表名) 備份名稱(chēng)
mysqldump -u root -p dingxue student > dingxue.sql
Enter password:****
還原(還原表直接把表放到指定的數(shù)據(jù)庫(kù)即可)
mysql -u root -p dingxue < dingxue.sql
/***************************樣例表***************************/
CREATE DATABASE booksDB;
user booksDB;
CREATE TABLE books
(
bk_id INT NOT NULL PRIMARY KEY,
bk_title VARCHAR(50) NOT NULL,
copyright YEAR NOT NULL
);
INSERT INTO books
VALUES (11078, 'Learning MySQL', 2010),
(11033, 'Study Html', 2011),
(11035, 'How to use php', 2003),
(11072, 'Teach youself javascript', 2005),
(11028, 'Learing C++', 2005),
(11069, 'MySQL professional', 2009),
(11026, 'Guide to MySQL 5.5', 2008),
(11041, 'Inside VC++', 2011);
CREATE TABLE authors
(
auth_id INT NOT NULL PRIMARY KEY,
auth_name VARCHAR(20),
auth_gender CHAR(1)
);
INSERT INTO authors
VALUES (1001, 'WriterX' ,'f'),
(1002, 'WriterA' ,'f'),
(1003, 'WriterB' ,'m'),
(1004, 'WriterC' ,'f'),
(1011, 'WriterD' ,'f'),
(1012, 'WriterE' ,'m'),
(1013, 'WriterF' ,'m'),
(1014, 'WriterG' ,'f'),
(1015, 'WriterH' ,'f');
CREATE TABLE authorbook
(
auth_id INT NOT NULL,
bk_id INT NOT NULL,
PRIMARY KEY (auth_id, bk_id),
FOREIGN KEY (auth_id) REFERENCES authors (auth_id),
FOREIGN KEY (bk_id) REFERENCES books (bk_id)
);
INSERT INTO authorbook
VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
(1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);
/***************************樣例表***************************/
【例14.1】使用mysqldump命令備份數(shù)據(jù)庫(kù)中的所有表
mysqldump -u root -p booksdb > C:/backup/booksdb_20110101.sql
【例14.2】備份booksDB數(shù)據(jù)庫(kù)中的books表
mysqldump -u root -p booksDB books > C:/backup/books_20110101.sql
【例14.3】使用mysqldump備份booksDB和test數(shù)據(jù)庫(kù)
mysqldump -u root -p --databases booksDB test> C:\backup\books_testDB_20110101.sql
【例14.4】使用mysqldump備份服務(wù)器中的所有數(shù)據(jù)庫(kù)
mysqldump -u root -p --all-databases > C:/backup/alldbinMySQL.sql
【例14.5】使用mysqlhotcopy備份test數(shù)據(jù)庫(kù)到/usr/backup目錄下
mysqlhotcopy -u root -p test /usr/backup
【例14.6】使用mysql命令將C:\backup\booksdb_20110101.sql文件中的備份導(dǎo)入到數(shù)據(jù)庫(kù)中
mysql -u root-p booksDB < C:/backup/booksdb_20110101.sql
【例14.7】使用root用戶(hù)登錄到服務(wù)器,然后使用souce導(dǎo)入本地的備份文件booksdb_20110101.sql
use booksdb;
source C:/backup/booksdb_20110101.sql
【例14.8】從mysqlhotcopy拷貝的備份恢復(fù)數(shù)據(jù)庫(kù)
cp –R /usr/backup/test usr/local/mysql/data
【例14.9】將www.abc.com主機(jī)上的MySQL數(shù)據(jù)庫(kù)全部遷移到www.bcd.com主機(jī)上。在www.abc.com主機(jī)上執(zhí)行的命令如下:
mysqldump -h www.bac.com -uroot -ppassword dbname |
mysql -hwww.bcd.com -uroot -ppassword
【例14.10】使用SELECT...INTO OUTFILE將test數(shù)據(jù)庫(kù)中的person表中的記錄導(dǎo)出到文本文件
SELECT * FROM test.person INTO OUTFILE "C:/person0.txt";
【例14.11】使用SELECT...INTO OUTFILE將test數(shù)據(jù)庫(kù)中的person表中的記錄導(dǎo)出到文本文件,使用FIELDS選項(xiàng)和LINES選項(xiàng),要求字段之間使用逗號(hào)‘,’間隔,所有字段值用雙引號(hào)括起來(lái),定義轉(zhuǎn)義字符定義為單引號(hào)‘\’’
SELECT * FROM test.person INTO OUTFILE "C:/person1.txt"
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
ESCAPED BY '\''
LINES
TERMINATED BY '\r\n';
【例14.12】使用SELECT...INTO OUTFILE將test數(shù)據(jù)庫(kù)中的person表中的記錄導(dǎo)出到文本文件,使用LINES選項(xiàng),要求每行記錄以字符串“> ”開(kāi)始,以“
SELECT * FROM test.person INTO OUTFILE "C:/person2.txt"
LINES
STARTING BY '> '
TERMINATED BY '
SELECT * FROM test.person INTO OUTFILE "C:/person2.txt"
LINES
STARTING BY '> '
TERMINATED BY '
【例14.13】使用mysqldump將test數(shù)據(jù)庫(kù)中的person表中的記錄導(dǎo)出到文本文件
mysqldump -T C:/ test person -u root -p
【例14.14】使用mysqldump命令將test數(shù)據(jù)庫(kù)中的person表中的記錄導(dǎo)出到文本文件,使用FIELDS選項(xiàng),要求字段之間使用逗號(hào)‘,’間隔,所有字符類(lèi)型字段值用雙引號(hào)括起來(lái),定義轉(zhuǎn)義字符定義為問(wèn)號(hào)‘?’,每行記錄以回車(chē)換行符“\r\n”結(jié)尾
mysqldump -T C:\backup test person -u root -p --fields-terminated-by=, --fields-optionally-enclosed-by=\" --fields-escaped-by=? --lines-terminated-by=\r
【例14.15】使用mysql語(yǔ)句導(dǎo)出test數(shù)據(jù)庫(kù)中person表中的記錄到文本文件
mysql -u root -p --execute="SELECT * FROM person;" test > C:\person3.txt
【例14.16】使用mysql命令導(dǎo)出test數(shù)據(jù)庫(kù)中person表中的記錄到文本文件,使用--vertical參數(shù)顯示結(jié)果
mysql -u root -p --vertical --execute="SELECT * FROM person;" test > C:\person4.txt
【例14.17】使用mysql命令導(dǎo)出test數(shù)據(jù)庫(kù)中person表中的記錄到html文件
mysql -u root -p --html --execute="SELECT * FROM person;" test > C:\person5.html
【例14.18】使用mysql命令導(dǎo)出test數(shù)據(jù)庫(kù)中person表中的記錄到xml文件
mysql -u root -p --xml --execute="SELECT * FROM person;" test > C:\person6.xml
【例14.19】使用LOAD DATA命令將C:\person0.txt文件中的數(shù)據(jù)導(dǎo)入到test數(shù)據(jù)庫(kù)中的person表
LOAD DATA INFILE 'C:/person0.txt' INTO TABLE test.person;
【例14.20】使用LOAD DATA命令將C:\person1.txt文件中的數(shù)據(jù)導(dǎo)入到test數(shù)據(jù)庫(kù)中的person表,使用FIELDS選項(xiàng)和LINES選項(xiàng),要求字段之間使用逗號(hào)‘,’間隔,所有字段值用雙引號(hào)括起來(lái),定義轉(zhuǎn)義字符定義為單引號(hào)‘\’’
LOAD DATA INFILE 'C:/person1.txt' INTO TABLE test.person
FIELDS
TERMINATED BY ','
ENCLOSED BY '\"'
ESCAPED BY '\''
LINES
TERMINATED BY '\r\n';
【例14.21】使用mysqlimport命令將C:\backup目錄下的person.txt文件內(nèi)容導(dǎo)入到test數(shù)據(jù)庫(kù)中,字段之間使用逗號(hào)‘,’間隔,字符類(lèi)型字段值用雙引號(hào)括起來(lái),定義轉(zhuǎn)義字符定義為問(wèn)號(hào)‘?’,每行記錄以回車(chē)換行符“\r\n”結(jié)尾
mysqlimport -u root -p test C:/backup/person.txt --fields-terminated-by=, --fields-optionally-enclosed-by=\" --fields-escaped-by=? --lines-terminated-by=\r\n
看了以上windows系統(tǒng)下mysql的備份及還原詳解介紹,希望能給大家在實(shí)際運(yùn)用中帶來(lái)一定的幫助。本文由于篇幅有限,難免會(huì)有不足和需要補(bǔ)充的地方,大家可以繼續(xù)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊板塊,會(huì)定期給大家更新行業(yè)新聞和知識(shí),如有需要更加專(zhuān)業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時(shí)售前售后,隨時(shí)幫您解答問(wèn)題的。