2013-12-07 15 views
5

是否有任何應用程序的Mac分裂的SQL文件,甚至腳本? 我有一個大文件,我必須將其上傳到不支持8 MB以上文件的主機。如何在MAC OSX中拆分sql?

*我沒有SSH訪問

回答

9

您可以使用此:http://www.ozerov.de/bigdump/

或者

使用此命令分割的sql文件

split -l 5000 ./path/to/mysqldump.sql ./mysqldump/dbpart- 

分裂命令需要一個文件並將其分成多個文件。 -l 5000部分告訴它每五千行分割文件。下一個位是文件的路徑,下一個位置是要保存輸出的路徑。文件將被保存爲指定的文件名(例如「dbpart-」),並附加一個字母組合。

現在你應該可以通過phpMyAdmin一次導入你的文件了,而且沒有問題。

更多信息http://www.webmaster-source.com/2011/09/26/how-to-import-a-very-large-sql-dump-with-phpmyadmin/

+1

在我的系統上,'split'也有一個'-b'標誌。然後你可以使用'split -b 8m'而不是'split -l 5000'。當然,在這兩種情況下,您都必須連接服務器上的文件,因爲這兩種情況都不能保證您在某些命令期間不會分裂。 –

+0

謝謝你們,這很棒,但是我得到一個錯誤「#1064 - 你的SQL語法有錯誤;檢查與你的MySQL服務器版本相對應的手冊,以便在正確的語法附近使用......」因爲分裂? – user3067592

+0

Yes as @WaleedKhan Khan之前提到你必須檢查你是否分割任何命令。 – souvickcse

3

這個工具應該做的伎倆:MySQLDumpSplitter

它是免費和開源。

與此問題的接受答案不同,此應用程序將始終保持擴展插入完好無損,因此查詢的確切形式無關緊要;生成的文件將始終具有有效的SQL語法。

完全披露:我是承辦此計劃的公司的股東。

0

可以分成若干工作使用的SQL語句:

csplit -s -f db-part db.sql "/^# Dump of table/" "{99}" 

從拼成命名99個文件 'DB-部分[N]' db.sql

您可以使用 「CREATE TABLE」或「INSERT INTO」而不是「#Dump of ...」

此外:避免安裝任何程序或將數據上傳到任何在線服務。你不知道你的信息會做什麼!