mysqldump备份数据库是一种比较简单及方便的方法,但它也消耗一定量的内存。可话又说回来了,数据库的哪个工作不消耗内存,若不消耗内存就能完成管理的DBA那不是DBA那是神--大神。说了一些找抬扛的话,若你找跟我扛那就不必了,你赢了。呵呵!咱们言归正传啊。

  今天用mysqldump工具做数据库备份时,报出这样一个错误:“Got error: 2013: Lost connection to MySQL server during query when using lock tables”在网上查了半天也没有找到类似的问题情况。故自己发奋图强通过问题的字眼去研究,此问题有两个重点,

第一个是Lost connection这代表mysql数据库断开了链接,此与参数wait_timeout,connect_timeout有关,但查看了一下show global variables like '%connection%'; show global status like '%connection%';没有发现什么异常的现象。所以研究

第二点lock tables,通过查看show global variables like 'innodb_table_locks'; 也未发现有被锁定的表,于是想起曾经看过一篇文章(忘记是哪篇了)中有这样一段:当数据库的表对应的文件损坏或丢失当访问该表时,系统会报错:表不存在或数据库断开链接。于是就从data文件中找表文件缺少或只有单个文件,将其备份后,移出来。此时再运行mysqldump时就执行通过了。

由于比较忙故简单记录下,供自己及网友后续解决问题查阅资料时用。