mysql怎样导入超过5G以上的sql文件
之前线上有一个数据库有一个日志表的数据有十几G 去表里看日志时查询很慢,所以同事就把他备份了6G的数据下来,前些天运营发现数据有误对不上,请求技术查询问题,首先想到之气的日志备份了所以现在要导入一个单独的库里面 导入一直失败,试sql文件切割,代码读取sql文件导入都失败,最后只能通过命令导入 也失败,经过查找是需要修改my.ini配置才能导入成功工具选择sqlyog 这个工具还是很强大的,但
·
之前线上有一个数据库有一个日志表的数据有十几G 去表里看日志时查询很慢,所以同事就把他备份了6G的数据下来,前些天运营发现数据有误对不上,请求技术查询问题,首先想到之气的日志备份了所以现在要导入一个单独的库里面 导入一直失败,试sql文件切割,代码读取sql文件导入都失败,最后只能通过命令导入 也失败,经过查找是需要修改my.ini配置才能导入成功
工具选择
sqlyog 这个工具还是很强大的,但是面对5个G的数据库来说,也只能罢工了
navicat for mysql这个也是导入不了5G以上的sql文件 会提示Out of memory 内存不足
简单的说就是各种错误都能遇到
错误1
ERROR 5 (HY000) at line 318: Out of memory (Needed 1681784 bytes)
这个错误能报很多 是使用 -f 报出来的,大致意思是内存不足,
解决办法 :mysql -uroot -p shujukuming -f<XXXXX
如果你不介意损失几条数据的话就用上面的方法吧
错误2
mysql error nr.2006-mysql server has gone away
这个错误是 上传限制的问题需要修改配置文件
配置文件在 linx叫 my.conf 在windows叫my.ini
这里面的东西修改要小心了乱改是不行的。
简单的就是修改几个配置就行了
max_allowed_packet=166666m 这个是限制文件大小的由于要上传6个G所以改成1111111M 额应该够了吧
wait_timeout=288000000 等待超时。。看事改吧,我在后面加了好几个0.。。
interactive_timeout= 288000000运行超时。。。。看事改吧,我在后面加了好几个0.。。
除了几个就不要修改其他的配置文件了,注意重启下服务器
更多推荐
已为社区贡献1条内容
所有评论(0)