# Windows下命令行导入sql文件

# 1.sql文件很大

MySQL max_allowed_packet设置以字节发送给服务器的最大数据包大小. (默认: 1MB),数据库变更需要:大的插入和更新可能会被max_allowed_packet参数限制,导致失败。

可以修改mysql服务器的配置(my.ini 或者 my.cnf 文件)参数:max_allowed_packet = 30M来解决,缺陷是该方法需要重启mysql服务器。

# 1.1永久修改

修改my.ini文件,max_allowed_packet的值可以设置为1024M

# 1.2临时修改

show variables like 'max_allowed_packet';

set global max_allowed_packet = 10 * 1024 * 1024;
1
2
3

1.命令行修改时,不能用M、G,只能这算成字节数设置。配置文件修改才允许设置M、G单位。

2.命令行修改之后,需要退出当前回话(关闭当前mysql server链接),然后重新登录才能查看修改后的值。通过命令行修改只能临时生效,下次数据库重启后又复原了。

3.max_allowed_packet 最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。

# 2.导入

mysql -u root -p --default-character_set=utf8
set character_set_database=utf8;
UTF-8:create database 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GBK:create database 数据库名 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
use 数据库名;
source D:/mysql/test.sql;
1
2
3
4
5
6