mysql备份工具mysqldump

由于navicat备份数据有些表结构会不一致,所以使用mysql自带dump工具。

 mysqldump -uroot -p cc>D:\cc.sql

导入需要注意的问题:

一定要检查一下dump出来的sql有没有create database ...

use database 这样的语句。可能这个库是你真在使用的库,会被覆盖掉

导入可能出现的问题:

1.mysql在导入的时候显示Unknown command '\''错误,

这个有些时候是由于导出端和导入端的字符集不同导致的。

解决方案:在导出的时候添加和默认字符集.

导出的时候设置字符集

mysqldump -uroot -p dbname --default-character-set=utf8mb4> D:\db.sql

2.[ERR] 1231 - Variable 'time_zone' can't be set to the value of 'NULL'

文件中头部和尾部可能有这样的注释,删掉试试。如果不行,就把头尾注释都删掉。

3.dump后的sql过大执行可能会出现问题,MySQL server has gone away

在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功。该项的作用是限制mysql服务端接收到的包的大小,因此如果导入的文件过大则可能会超过该项设置的值从而导致导入不成功!下面我们来看一下如何查看以及设置该项的值。

查看 max_allowed_packet 的值

show global variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+

可以看到默认情况下该项的大小只有4M,接下来将该值设置成150M(1024*1024*150)

set global max_allowed_packet=157286400;

如果设置后查看值没有生效,可以修改my.ini文件,我的这个文件是在D盘下,D:\ProgramData\MySQL\MySQL Server Data;修改完成之后重启mysql服务即可。

4.也可能遇到MySQL 2006-MySQLserver has gone away

找到 安装目录下的my.ini配置文件,加入以下代码:

max_allowed_packet=500M

wait_timeout=288000

interactive_timeout = 288000

三个参数注释如下:

max_allowed_packet是mysql允许最大的数据包,也就是你发送的请求;

wait_timeout是等待的最长时间,这个值大家可以自定义,但如果时间太短的话,超时后就会现了MySQL server has gone away #2006错误。

max_allowed_packet参数的作用是,用来控制其通信缓冲区的最大长度

参考链接:

MySQL之mysqldump的使用 - MarkLogZhu - 博客园

MySQL server has gone away错误的解决办法 - php、凯 - 博客园

MySQL 2006-MySQLserver has gone away_ITPUB博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值