View Single Post
  #1   IP: 153.99.76.136
Old 2016-07-04, 06:26 AM
Fairbank Fairbank is offline
初级会员
 
Join Date: 2012-05-25
Posts: 1
Fairbank 现在声名狼藉
Default Mysql导入大容量SQL文件数据问题

mysql在通过导入sql文件可能会出现下面二个问题:

1.如果sql文件过大,会出现"MySQL server has gone away"问题;

2.如果sql文件数据有中文,会出现乱码



解决问题:

问题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

windows中修改my.ini文件,在linux中修改my.cnf文件.

重启mysql后,在查看修改后的max_allowed_packet值

问题2:登录时指定字符集编码

mysql -uroot -P3308 -p123456 - -default-character-set=utf8 (-P是指指定端口号)
-------------
最后通过source命令 即可成功导入:

source E:ydj\test.sql
Reply With Quote