mysql之?dāng)?shù)據(jù)備份

數(shù)據(jù)備份主要有2種:物理備份和邏輯備份。
物理備份:通過把數(shù)據(jù)文件復(fù)制出來,達(dá)到備份的目的,需要收費(fèi)。
邏輯備份:把描述數(shù)據(jù)庫結(jié)構(gòu)和內(nèi)容的信息保存起來,達(dá)到備份的目的,免費(fèi)的。

數(shù)據(jù)備份的工具:mysqldump,以及用命令行客戶端工具mysql和sql語句 source進(jìn)行數(shù)據(jù)恢復(fù)的方法。

備份數(shù)據(jù)庫中的表:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 數(shù)據(jù)庫名稱 [表名稱 … ] > 備份文件名稱
備份整個(gè)數(shù)據(jù)庫:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 --databases 數(shù)據(jù)庫名稱 … > 備份文件名
備份整個(gè)數(shù)據(jù)庫服務(wù)器:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 --all-databases > 備份文件名
使用mysql命令行客戶端工具 進(jìn)行數(shù)據(jù)恢復(fù):H:\>mysql -u root -p demo < test.sql
使用source語句進(jìn)行數(shù)據(jù)恢復(fù):SOURCE 備份文件名

1、如何進(jìn)行數(shù)據(jù)備份

數(shù)據(jù)備份工具:mysqldump,有3中模式:
1、備份數(shù)據(jù)庫中的表
2、備份整個(gè)數(shù)據(jù)庫
3、備份整個(gè)數(shù)據(jù)庫服務(wù)器

1、備份數(shù)據(jù)庫中的表
語法:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 數(shù)據(jù)庫名稱 [表名稱 … ] > 備份文件名稱

  • “-h”后面跟的服務(wù)器名稱,如果省略,默認(rèn)是本機(jī)“l(fā)ocalhost”。
  • “-u”后面跟的是用戶名
  • “-p”后面跟的是密碼,如果省略,執(zhí)行的時(shí)候系統(tǒng)會(huì)提示錄入密碼。
--備份本機(jī)數(shù)據(jù)庫服務(wù)器上demo數(shù)據(jù)庫中的商品信息表和會(huì)員信息表的所有信息
H:\>mysqldump -u root -p demo goodsmaster membermaster > test.sql
Enter password: *****

2、備份整個(gè)數(shù)據(jù)庫
語法:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 --databases 數(shù)據(jù)庫名稱 … > 備份文件名

--備份本機(jī)數(shù)據(jù)庫服務(wù)器中的2個(gè)數(shù)據(jù)庫demo和demo1進(jìn)行備份
H:\>mysqldump -u root -p --databases demo demo1 > test1.sql
Enter password: *****

3、備份整個(gè)數(shù)據(jù)庫服務(wù)器
語法:mysqldump -h 服務(wù)器 -u 用戶 -p 密碼 --all-databases > 備份文件名

--備份整個(gè)數(shù)據(jù)庫到test2.sql中,包括系統(tǒng)數(shù)據(jù)庫和用戶創(chuàng)建的數(shù)據(jù)庫中的庫結(jié)構(gòu)信息、表結(jié)構(gòu)信息和表里的數(shù)據(jù)。
H:\>mysqldump -u root -p --all-databases > test2.sql
Enter password: *****

2、如何進(jìn)行數(shù)據(jù)恢復(fù)

數(shù)據(jù)恢復(fù)方法有2種:

  • 1、使用mysql命令行客戶端工具 進(jìn)行數(shù)據(jù)恢復(fù)
  • 2、使用source語句進(jìn)行數(shù)據(jù)恢復(fù)

1、使用mysql命令行客戶端工具 進(jìn)行數(shù)據(jù)恢復(fù)
語法:H:\>mysql -u root -p demo < test.sql
Enter password: *****

mysql 是一個(gè)命令行客戶端工具,可以與 MySQL 服務(wù)器之間進(jìn)行連接,執(zhí)行 SQL 語句。

  • “-u”后面跟的是用戶。
  • “-p”后面跟的是密碼。

2、使用source語句進(jìn)行數(shù)據(jù)恢復(fù)

語法:SOURCE 備份文件名

mysql> USE demo;
Database changed
mysql> SOURCE H:\\test.sql
Query OK, 0 rows affected (0.00 sec)

3、如何導(dǎo)出和導(dǎo)入表里的數(shù)據(jù)

1、導(dǎo)出表里的數(shù)據(jù)

使用“SELECT … INTO OUTFILE”語句導(dǎo)出數(shù)據(jù)表的語法結(jié)構(gòu)是:
SELECT 字段列表 INTO OUTFILE 文件名稱 FIELDS TERMINATED BY 字符 LINES TERMINATED BY 字符 FROM 表名;

  • INTO OUTFILE 文件名稱,表示查詢的結(jié)果保存到文件名稱指定的文件中;
  • FIELDS TERMINATED BY 字符,表示列之間的分隔符是“字符”;
  • LINES TERMINATED BY 字符,表示行之間的分隔符是“字符”。
mysql.ini文件中的參數(shù),告訴你只能導(dǎo)出到如下路徑:
# Secure File Priv.
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"


mysql> SELECT * INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/goodsmaster.txt'
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n'
-> FROM demo.goodsmaster;
Query OK, 3 rows affected (0.00 sec)

2、導(dǎo)入表里的數(shù)據(jù)
“LOAD DATA”是與“SELECT … INTO OUTFILE”相對應(yīng)的數(shù)據(jù)導(dǎo)入語句。語句結(jié)構(gòu)是:
LOAD DATA INFILE 文件名 INTO TABLE 表名 FIELDS TERMINATED BY 字符 LINES TERMINATED BY 字符;

--刪除商品信息表中的數(shù)據(jù)
mysql> DELETE FROM demo.goodsmaster
-> WHERE itemnumber>0;
Query OK, 3 rows affected (0.03 sec) 

--導(dǎo)入數(shù)據(jù)
mysql> LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/goodsmaster.txt'
-> INTO TABLE demo.goodsmaster
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n';
Query OK, 3 rows affected (0.02 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容