App下載

mysql怎么運(yùn)行sql文件?一行代碼解決數(shù)據(jù)庫(kù)備份!

猿友 2021-07-05 11:17:28 瀏覽數(shù) (16830)
反饋

在小編的的這篇文章(怎么打開(kāi)sql文件?解密sql文件內(nèi)容!)中介紹了sql文件的基本結(jié)構(gòu),而在這篇文章(Navicat怎么導(dǎo)入SQL文件?數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)詳解!)中小編介紹了如何使用Navicat導(dǎo)入sql文件。但是,不是所有的小伙伴都用Navicat,而且這種方式一點(diǎn)也不具有通用性(不同的數(shù)據(jù)庫(kù)管理軟件導(dǎo)入SQL方式不同),今天小編來(lái)介紹一下一種雖然原始且沒(méi)有較好的交互效果,但卻完全通用且基礎(chǔ)的方法——使用mysql命令行導(dǎo)入sql文件。

第一種方式——分步執(zhí)行

在命令提示符中輸入??mysql –u用戶名 –p密碼 ?–D數(shù)據(jù)庫(kù)??  ?登陸數(shù)據(jù)庫(kù)。例如

?mysql -uroot -proot -DW3c?

第二步,使用?source?命令(或者?\.?用法是一樣的)執(zhí)行(?source?命令要帶上sql腳本地址)。例如

?source C:\w3cschool.sql?

分步執(zhí)行數(shù)據(jù)庫(kù)導(dǎo)入

第二種方式——一步到位

第二種方式一步將數(shù)據(jù)庫(kù)登陸和導(dǎo)入合并在一起,使用?<?來(lái)導(dǎo)入數(shù)據(jù)庫(kù)sql文件。代碼如下:

?mysql –u用戶名 –p密碼 -D數(shù)據(jù)庫(kù)名稱<sql腳本路徑?,示例如下:

?mysql –uroot –proot -DW3c<C:\w3cschool.sql?

合并執(zhí)行

 關(guān)于代碼截圖,這里執(zhí)行了兩次代碼,原因是第一次執(zhí)行彈出的警告讓小編以為沒(méi)有執(zhí)行成功,然后小編將數(shù)據(jù)庫(kù)清空了后再進(jìn)行執(zhí)行代碼,發(fā)現(xiàn)該警告只不過(guò)是提醒(果然,對(duì)于程序員來(lái)說(shuō)warning就應(yīng)該被忽視),并不影響代碼的執(zhí)行結(jié)果。

另外,關(guān)于該警告的內(nèi)容其實(shí)是,不要在命令提示行里輸入密碼(果然是可以忽視的警告呢)。

兩種方式的總結(jié)與使用軟件進(jìn)行導(dǎo)入的對(duì)比

這兩種方式導(dǎo)入sql都是比較簡(jiǎn)單的,兩種方式的區(qū)別在于:合并導(dǎo)入執(zhí)行后命令行還是基礎(chǔ)命令行,而分步導(dǎo)入的是mysql命令行,如果在導(dǎo)入后還想對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,使用分步導(dǎo)入會(huì)更舒服(比如導(dǎo)入多個(gè)sql,不過(guò)呢mysql命令行并不能復(fù)制黏貼,從這點(diǎn)看還是基礎(chǔ)命令行更加舒服)。

小伙伴們注意到,不管是分步導(dǎo)入還是合并導(dǎo)入,他們都要求登陸到一個(gè)固定的數(shù)據(jù)庫(kù),實(shí)際上也可以不登陸數(shù)據(jù)庫(kù),不過(guò)這種情況要求sql腳本里面存在創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句。也就是說(shuō),如果我在腳本中加入創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)句,那么到時(shí)候輸入指令就不需要帶數(shù)據(jù)庫(kù)參數(shù)了。

即可以采用這樣的方式:?mysql –u用戶名 –p密碼 <sql腳本路徑?

這一點(diǎn)是Navicat不能做到的,Navicat需要自己先建立一個(gè)數(shù)據(jù)庫(kù)才能進(jìn)行數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)。

 所以本質(zhì)上來(lái)說(shuō),使用命令行方式可以直接命令造出一個(gè)完整的數(shù)據(jù)庫(kù),而使用Navicat方式是造出一個(gè)空數(shù)據(jù)庫(kù),然后導(dǎo)入數(shù)據(jù)庫(kù)的數(shù)據(jù),讓他在內(nèi)容方面和目標(biāo)數(shù)據(jù)庫(kù)相似,但是如果創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候命令不同,實(shí)際上數(shù)據(jù)庫(kù)還是會(huì)存在著不同。

小結(jié)

以上就是mysql命令行導(dǎo)入sql文件的全部?jī)?nèi)容,學(xué)習(xí)sql請(qǐng)關(guān)注編程獅,更多優(yōu)質(zhì)課程等你來(lái)看!


0 人點(diǎn)贊