2012-12-05 98 views
33

如何將大型(14 GB)MySQL轉儲文件導入新的MySQL數據庫?如何將大型(14 GB)MySQL轉儲文件導入新的MySQL數據庫?

+0

會發生什麼事,當您嘗試這樣做呢?你試過了什麼,你得到了什麼結果? –

+1

我在本地嘗試了phpmyadmin,我的機器被掛起或超時。我通過改變執行時間來嘗試它,這也沒有幫助。您可以通過php或C或任何第三方軟件給我這個想法,將整個轉儲分解成小塊。 –

+0

夥計們,你能否把我的答案標記爲已接受?謝謝! –

回答

19

您是否嘗試過直接使用mysql命令行客戶端?

mysql -u username -p -h hostname databasename < dump.sql 

如果你不能做到這一點,有我,四處搜尋,只有任意數量的您可以通過谷歌搜索,幫助您導入大型轉儲到MySQL找到公用事業,像BigDump

+0

謝謝@Brian,我會按照你的想法讓你知道。 –

+1

用於BigDump的+1,因爲它消除了導入大型數據庫時的大部分麻煩。 –

+0

mysql命令在終端工程中導入數據庫..但沒有優化它... –

105

該解決方案幫助我:

mysql -u root -p 

set global net_buffer_length=1000000; --Set network buffer length to a large byte number 

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number 

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour 

source file.sql --Import your sql dump file 

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete! 

答案是發現here

+4

先生我一直在搜索超過7小時的互聯網,直到我發現這是最後工作。你救了我的命 ! – victory

+0

很高興聽到這幫助你! –

+3

在mariadb上,檢查最大值: 'set global net_buffer_length = 1048576; set global max_allowed_pa​​cket = 1073741824;' –

-6

你需要

  • Bigdump腳本bigdump.php從下載的phpMyAdmin的或其它工具創建數據庫的
  • 轉儲文件,讓dump.sql調用它。您也可以使用GZip壓縮轉儲文件,讓它調用dump.gz.
  • 您的mySQL數據庫的訪問帳戶
  • 某些安裝了PHP的Web服務器的訪問帳戶。該Web服務器必須能夠連接到mySQL數據庫。如果您的Web服務器和mySQL服務器來自同一ISP,則此功能可能存在。
  • 一些很好的文本編輯器,如Notepad ++來編輯配置文件。
  • 某些FTP客戶端將文件上傳到網絡服務器。
  • 常識有關文件,PHP,MySQL數據庫,phpMyAdmin的,FTP和HTTP
2

我張貼我發現在幾個我見過的答覆是並沒有提到什麼,我跑進,並顯然這將甚至擊敗BigDump,所以檢查它:

我試圖通過Linux命令行加載500兆轉儲,並不斷收到「Mysql服務器已經消失」的錯誤。 my.conf中的設置沒有幫助。什麼結果來修復它是...我是做一個大的擴展插入這樣的:

insert into table (fields) values (a record, a record, a record, 500 meg of data); 

我需要格式化文件作爲單獨的刀片是這樣的:

insert into table (fields) values (a record); 
    insert into table (fields) values (a record); 
    insert into table (fields) values (a record); 
    Etc. 

,並生成轉儲我用這樣的事情和它的工作就像一個魅力:

SELECT 
     id, 
     status, 
     email 
    FROM contacts 
    INTO OUTFILE '/tmp/contacts.sql' 
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    LINES STARTING BY "INSERT INTO contacts (id,status,email) values (" 
    TERMINATED BY ');\n' 
+0

如果你做了一個CSV轉儲,它將被加載瘋狂更快。 –

-3

導航到C:\ wamp64 \別名\ phpmyadmin.conf與變革:

php_admin_value upload_max_filesize 128M 
php_admin_value post_max_size 128M 

php_admin_value upload_max_filesize 2048M 
php_admin_value post_max_size 2048M 

以上 :)

0

對於Windows,我使用Navicat的保費。它允許您將數據庫對象從一個數據庫傳輸到另一個數據庫,或傳輸到一個sql文件。目標數據庫可以與源或其他服務器位於同一臺服務器上。

Navicat Online Manual for windows

3

首先開>命令行

cd.. 

cd.. 

f: -- xampp installed drive 

cd xampp/mysql/bin 

mysql -u root -p 

set global net_buffer_length=1000000; --Set network buffer length to a large byte number 

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number 

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour 

use DATABASE_NAME; 

source G:\file.sql; --Import your sql dump file 

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete! 
-2

根據MySQL文檔沒有這些作品的!人們關注! 所以我們將上傳TEST.SQL到TEST_DB 型到這個殼:

的mysql --user = USER_NAME --password =你的密碼TEST_DB < d:/test.sql

這工作是肯定的!

謝謝。

0

使用命令導入大型數據庫

mysql -u username -p 

> source sqldbfile.sql 

這可以導入任何大型DB

相關問題