【数据库】mysqldump 使用报错Got error: 2013: Lost connection to MySQL server during query when using LOCK ...

背景:之前开发的报告整理工具使用的数据库一直没有增加自动备份,每次想起来手动去备份一下,因此想增加一个自动备份数据库的任务。先把这个过程中遇到的问题记录下来


写基础的shell备份脚本,执行脚本后出现两个报错

mysqldump: [Warning] Using a password on the command line interface can be insecure.

mysqldump: Got error: 2013: Lost connection to MySQL server during query when using LOCK TABLES

第一个是在脚本中明文输入了password的警告,这个先忽略

第二个提示是失去连接的错误,此时去查看导出的数据库备份文件是空的,即备份没有成功,需要解决这个问题。


查阅网上的资料,共有三种思路

思路一:连接超时。但是我实际从执行脚本到失败只有1秒钟,还没达到默认的60秒超时的情况,所以我不是这种情况

思路二:不使用缓存区导出,mysqldump增加-q选项。但是我在备份前未执行mysql语句,实际增加了-q参数报错依然存在,也不是此种情况

思路三:导出的表格存在错误。

连接mysql数据库,使用“show tables”命令查看表格,出现以下报错,到此可以确认我属于此种情况。因为表格错误导致的无法连接错误

mysql> show tables;

ERROR 2006 (HY000): MySQL server has gone away

No connection.Trying to reconnect...

Connection id:    8

Current database: DLYX_DB

解决方法:重启本机的mysql 服务器,重启后再次调用shell脚本,备份成功。



参考链接

https://blog.51cto.com/10685043/1761320

https://www.jianshu.com/p/2dbf454a386e

你可能感兴趣的:(【数据库】mysqldump 使用报错Got error: 2013: Lost connection to MySQL server during query when using LOCK ...)