如何导入超大的sql文件到Mysql

如何从sql文件导入到Mysql


你可以使用如下命令将sql导入到Mysql:

1
mysql -u 用户名 -p 数据库名 < 文件.sql

如果出现1366错误,可以尝试如下方法:

  1. 将数据库编码设置为utf8mb4,排序规则设置为utf8mb4_unicode_ci

    1
    ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
  2. 将表的字符集设置为utf8mb4

    1
    ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  3. 使用uft8连接

    1
    mysql -u 用户名 -p --default-character-set=utf8 数据库名 < 文件.sql
  4. 使用Mysq5.5及以上版本

导入大文件


  1. 将mysql配置文件my.ini中的max_allowed_packet修改大一些。

    默认为1k,可以修改为512m或更大。

    可以通过如下命令查看修改结果:

    1
    show VARIABLES like '%max_allowed_packet%';

    最后重启mysql服务即可。

    1
    sudo systemctl restart mysql
  2. 分割文件(不推荐这种做法)

    1
    split -b 100m 文件.sql 文件_part_

    使用时注意查看文件分割处是否被意外换行。