還不還原得回去,得看 mysqldump 時的參數是如何下的:
匯進去一樣要注意:
樓主就先加上 --default-character-set=binary 試匯看看,再出錯的話,請貼上錯誤訊息吧。
iT邦幫忙MVPwiseguy提到:
max-allowed-packet
這個...已經設定為1024m了...可是...備份時沒問題...還原時...即使本機還原...還是會出現...out of memory...16GB的記憶體...還是一樣...
那就是匯出的時候,沒用 --skip-opt 把 -e 給抑制掉的結果,造成一個 table 只會匯出成一個 insert 指令,所以匯入時,那個 table 如果 size 有 100GB,那麼你就算把主機所有的記憶體都設為 max-allowed-packet 也沒用。因為它會試圖 allocate 這個 insert SQL 指令的大小。allocate 不到那麼大的記憶體,就會回報 out of memory 了。
所以現在要對付這個以擴充型 insert 匯出的 SQL,最差的情況就是寫程式把擴充型 insert 復原成標準 insert 囉。