1.不导出系统数据库,以免在导入的时候出现错误:ERROR 1726 (HY000) at line 17288: Storage engine 'InnoDB' does not support system tables. [mysql.columns_priv]【解决办法】:
mysql -h127.0.0.1 -uroot -P3307 -p123asd -e "show databases;" | grep -Ev "Database|information_schema|mysql|sys|performance_schema"|xargs mysqldump -h127.0.0.1 -uroot -P3307 -p123asd --force -x --databases>dump.sql其中: --force -x 是为了防止无权限视图以及其他错误。
将dump文件导入的时候出现错误:ERROR 1153 (08S01) at line 7250: Got a packet bigger than 'max_allowed_packet' bytes这是因为有的sql中导出了太长的mediumtext字段,超过了max_allowed_packet定义的最大值。mysql中一个packet的定义为:客户端发送到mysql 服务端的单个SQL 语句或者服务端发送到客户端的单行数据或者master发往slave的一个binary log event。【解决办法】增加max_allowed_packet的配置可以修改配置文件:[mysqld]max_allowed_packet=100M不过这种方法要重启才能生效。
可以修改全局参数,注意要写成10010241024,而不能写100Mset global max_allowed_packet = 100 * 1024 * 1024;不过这种方法立即对当前启动的mysql生效。当mysql重启以后又会恢复到默认配置。
以上两种情况根据自身需要配置。比我的环境中不能随便重启mysql,而我又要临时导入数据,就选择方法二。
修改以后可以用两种方式查看:
show variables like '%max_allowed_packet%';select @@max_allowed_packet;