0

次のコマンドを使用して、cmd行を使用して非常に大きなファイルをインポートしようとしました。

mysql -uroot -ppassword --default-character-set=utf8 mydb < /Users/user1/Downloads/dump.sql

しかし、しばらくして、私はメッセージを受け取りました:

ERROR 2006 (HY000) at line 8498: MySQL server has gone away

したがって、以前に挿入されたデータを消去せずに、8498行目からインポートを再開する必要があります。

どうやってやるの?

どうもありがとう..

4

2 に答える 2

0

私は ethrbunny の質問とコメントに同意しますが、あなたの明白な質問に答えるために、読んでください...

これをテストする方法はありませんが、次のようなものです

tail -n +8497 /Users/user1/Downloads/dump.sql | mysql -uroot -ppassword --default-character-set=utf8 mydb 

Linux tail のマニュアルページにあるように

-n, --lines=K
output the last K lines, instead of the last 10; 
or use -n +K to output lines starting with the Kth

(-n を必要とせず +K だけの tail のいくつかのバージョンを見てきました。

または と同じ考えsed、すなわち

sed -n '9498,9999999p' /Users/user1/Downloads/dump.sql | mysql -uroot -ppassword --default-character-set=utf8 mydb 

999999 は、ファイル内のレコード数よりも大きい数値を意味します。

IHTH。

于 2012-10-18T12:11:37.227 に答える
0

@shellter から - 1 つの方法は、データを一時テーブルにインポートしてから、'insert into <final table> select * from <temp table> limit <start line, lines to import> を実行することです。

ただし、ダンプに何か問題があると思われます。

于 2012-10-18T12:16:50.480 に答える