我尝试使用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行再次开始导入而不删除先前插入的数据。
我该怎么做?
非常感谢..
答案 0 :(得分: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,因此您可能需要进行一些实验。)
或与sed
相同的想法,即
sed -n '9498,9999999p' /Users/user1/Downloads/dump.sql | mysql -uroot -ppassword --default-character-set=utf8 mydb
999999的数字应大于文件中的记录数。
IHTH。
答案 1 :(得分:0)
从@shellter开始 - 一个途径是将数据导入临时表,然后执行'insert into&lt; final table&gt; select * from&lt; temp table&gt;限制&lt;起始行,要导入的行&gt;。
我怀疑你的转储出了问题。