2013-05-27 105 views
0

我已經導出一個MySQL v4.0.25腳本到一個SQL文件,因爲我無法找到一個安裝4.0了唯一的選擇是使用4.1 .. 現在,我因爲v4.0沒有utf-8(只有latin-1),v4.1給我一個語法錯誤,所以得到了常見的1064錯誤。遷移腳本從MySQL 4.0到4.1

我可以手動編輯這些文件,但其中一個腳本是一個12GB大的文件,另一個是5GB,所以我甚至找不到一個編輯器能夠打開一個大而且有問題的文件(這些文件非常大,因爲它們是超過10年使用的2個生產數據庫的副本)。

如何解決或繞過此問題?任何機會我都可以告訴導入腳本忽略有錯誤的行(我甚至不知道有多少行)?

回答

1

如果它仍然是可能的,使用mysqldump --tab=path轉儲SQL數據結構和CSV格式的數據表。這樣,您需要做的任何修改都將放在小得多的sql文件上,從而保持大型數據文件不變。他們可以稍後使用mysqlimport命令導入整個事件。

或者,你總是可以用於導入您的SQL文件的mysql --force選項。

的更多信息:

對於手動編輯的文件:

如果你是usi的話NG Linux作爲操作系統,然後有一個大品種在你的手的命令:lesssedmore,等sed是良好的替代,類似你的問題。一個不錯的教程可以在http://www.grymoire.com/Unix/Sed.html

在Windows中可以找到,我有時使用PowerShell。我有關於"mysqldump without database name"的StackOverflow上的類似帖子,其中有一個如何替換轉儲文件中字符串的示例。

+0

雖然不是一個完整的答案的問題,這導致以正確的方式,使腳本運行,並忽略錯誤,與我討論在以後的時間,所以我將其標記爲正確的。謝謝 –

+0

不客氣@Zed_Blade。祝你這個項目好運! – GregD