簡體   English   中英

如何從包含多個數據庫的.sql文件導入單個數據庫

[英]How do I import a single database from a .sql file that contains multiple databases

如何從具有多個數據庫的備份文件導入單個數據庫?

主要問題是該文件的大小為921mb,所以我無法在記事本或我擁有的任何IDE中成功打開它。 如果可以,我將獲得所需的SQL,然后將其手動復制到phpMyAdmin中。

如果我能直接從備份文件中導入它會很好。

我想可能是這樣,但我無法正常工作

mysql -u root -p --database1 database1 < backup.sql

有人可以幫忙嗎? 謝謝

目標數據庫是否已經存在?

如果是這樣的話:

mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]

除此以外:

mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

我在某些數據加載腳本中遇到了這樣的問題。 腳本的形式為:

insert into table(a,b,c) values((a0,b0,c0),(a1,b1,c1),...(a50000,b50000,c50000));

並包含5到幾十個這些超長語句。 我想將數據導入到的系統無法識別這種格式。 需要這樣的形式:

insert into table(a,b,c) values(a0,b0,c0);
insert into table(a,b,c) values(a1,b1,c1);
...
insert into table(a,b,c) values(a50000,b50000,c50000);

甚至較小的腳本也只有幾個MB,最多需要一個小時才能加載到文本編輯器中。 因此,在標准文本編輯器中進行這些更改是不可能的。 我編寫了一個快速的小型Java應用程序,它以第一種格式讀取並創建了一個包含第二種格式的文本文件。 即使最大的腳本也只花了不到20秒的時間。 是的,那是幾秒鍾而不是幾分鍾。 即使很多數據都用引號引起來,所以我不得不使解析器知道引號。

您可以編寫自己的應用程序(Java,C#,Perl等)來執行類似的操作。 僅將與所需數據庫有關的那些行寫入單獨的腳本文件。 編寫和測試該應用程序將花費數小時或數天的時間,但它可能花了您更多的時間,而不僅僅是研究用於處理大型文件的文本編輯器-只是發現它們並不是真的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM