使用mysqldump导出数据库sql文件:
mysqldump -uroot -p db1 > db1.sql
在Navicat中运行SQL导入该sql文件,遇到了Got a packet bigger than 'max_allowed_packet' bytes 的错误,如图:
即使几次调整max_allowed_packet大小,依然很难满足数据导入的大小需求,索性不在max_allowed_packet上面做文章。
检查导出的sql文件,发现因为个别数据库表数据量过大,而默认的mysqldump导出,每个数据库表的INSERT INTO语句是统一写成一个,如下,而不是一行数据对应一个INSERT INTO语句
INSERT INTO table VALUES (1),(2),(3),(4),...;
这里引入 -skip-extended-insert 属性,给每条数据对应生成一条INSERT INTO语句,重写mysqldump导出数据库:
mysqldump -uroot -p --skip-extended-insert db1 > db1.sql
重新导入,问题解决。