小伙伴们在开发过程中,有时候会遇到新环境数据迁移问题,需要把之前的数据库导入到新环境,其中一种方式就是通过导入sql文件。我们可以在客户端sqlyog或者navicat中直接导入(此种方式比较慢),也可以通过source命令导入(速度会比较快)。
但是,如果我们的sql文件过大,比如超过了1G,导入过程可能会遇到一些问题,比如“Out of memory”(内存不足)或者“mysql server has gone away”(一般是操作sql文件时间过长,导致超时,client端和mysql server端连接断开),辛苦导入半天看到这个错误,小伙伴们此时内心或许会各种xx了!
此处给小伙伴们分享一下解决此问题的一个解决方案:
1.找到mysql的配置文件,在linux上是my.conf,在windows叫my.ini
2.修改配置文件中的max_allowed_packet(每次最大接收数据包的大小),默认为1K,此处改为1G即1024M。
max_allowed_packet=1024M
3.使用mysql -uroot -p密码,进入mysql,然后输入命令查看参数是否更改:
show VARIABLES like '%max_allowed_packet%';
4.重启mysql服务
5.
使用命令mysql -uroot -p密码,重新登录mysql,然后使用命令use 数据库名,选择对应的数据库
6.使用命令
source 文件路径 即可开始导入sql文件,慢慢等待吧!