MYSQL 超大sql还原

无意间使用工具备份数据库,设置最大插入大小为 :10240M,于是,在还原时,不管如何调整 MYSQL 配置参数,都提示超时或连接断开(No connection. Trying to reconnect…)。

总结如下:

首先,使用命令行登录。

mysql -uroot -p123456 --default-character-set=utf8

不指定默认编码,导入时,可能会提示 unknown command ‘\’。

# 设置编码或许不需要
mysql>SET NAMES utf8;

# 设置允许的最大包大小
mysql>SET GLOBAL max_allowed_packet=1073741824;

# 设置网络缓存区长度
mysql>SET GLOBAL net_buffer_length=99328;

# 交互链接超时时间(秒)
mysql>SET GLOBAL interactive_timeout=31536000;

# 非交互链接超时时间(秒)
mysql>SET GLOBAL wait_timeout=2147483;

之后,使用 source 还原 sql。

另外,有一种说法是,索引问题,造成还原慢,可以尝试删除原表中的索引,之后再重新加上。(本人并未测试过)

通过命令行还原:

mysql 命令
mysql -u用户名 -p密码 数据库 <待还原SQL文件地址 –default-character-set=utf8

source 命令
mysql -u用户名 -p密码
use 数据库名;
source 待还原sql文件地址

mysqldump 工具
mysqldump -u用户名 -p密码 还原的数据库 <待还原sql文件地址

另见:
MySQL中interactive_timeout和wait_timeout的区别

MySQL导入数据非常慢的解决办法