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

遵循@shellter - 一种方法是将数据导入临时表,然后执行“插入<final table> select * from <temp table> limit <start line, lines to import>”。

我怀疑你的转储有问题。

于 2012-10-18T12:16:50.480 回答
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 的 tail 版本,只需 +K,因此可能需要您进行一些实验。)

或与 相同的想法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 回答