MYSQL导入过大文件时的解决办法

时间:2022-09-20 07:43:33
mysql在通过导入sql文件可能会出现下面二个问题:   1.如果sql文件过大,会出现"MySQL server has gone away"问题;
 
2.如果sql文件数据有中文,会出现乱码  www.2cto.com     解决问题:   问题1:出现MySQL server has gone away"问题,是因为mysql默认的"max_allowed_packet"变量值过小. 查看目前配置
 
show VARIABLES like '%max_allowed_packet%';
 
显示的结果为:   +--------------------+---------+ | Variable_name      | Value   | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+
 
说明目前的配置是:1048576/1024/1024 = 1M   修改max_allowed_packet值:
 
方法1: SET GLOBAL max_allowed_packet = 500*1024*1024;(经测试无效)
 
方法2: 直接修改配置文件,重启mysql  www.2cto.com                windows中修改my.ini文件,在linux中修改my.cnf文件.              C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\my.ini(安装mysql时的,指定的数据文件目录)              
MYSQL导入过大文件时的解决办法
 
            重启mysql后,在查看修改后的max_allowed_packet值               MYSQL导入过大文件时的解决办法
 
问题2:登录时指定字符集编码             mysql -uroot -P3308 -p123456  - -default-character-set=utf8  (-P是指指定端口号)              MYSQL导入过大文件时的解决办法          最后通过source命令 即可成功导入:               source  E:ydj\test.sql
 
   MYSQL导入过大文件时的解决办法      另外:设置max_allowed_packet 时的方法:      1)直接在my.ini中加入这个字段      2)set global max_allowed_packet = 2*1024*1024*10     3)设置完以后查看是否完成show VARIABLES like '%max_allowed_packet%';查看下max_allowed_packet是否编辑成功