我在 cron 中的 mysql 服务器上运行 mysqldump(作为备份),并收到如下警告消息
mysqldump: Got error: 2013: Lost connection to MySQL server during query when doing refresh
这个 MySQL 错误 (2013) 是什么意思?我在 Google 上搜索了一下,但没有什么帮助...
记录显示,mysqldump 正在连接到 MySQL 从属服务器,它以前在连接到主服务器时可以工作。
答案1
这可能非常糟糕,2013
意味着为该mysqldump
进程提供服务的线程已死亡。这可能是因为服务器上的 InnoDB 引擎在读取数据库文件时检测到错误。由于mysqldump
必须读取所有数据库的所有页面才能进行备份,因此很可能会触发应用程序在日常活动中可能避免的任何潜在损坏。
如果您运行mysql
命令,它报告您的连接 ID 较低,则您的服务器可能已自行重启。您应该mysqld.log
立即检查以找出原因。
答案2
2013 表示与服务器的连接断开。目前有几种可能性:
- 有人
KILL
编辑了该查询 - 网络问题导致连接中断
- 服务器崩溃/死机
- 您的连接空闲了
wait_timeout
并被杀 - 客户端提取数据的速度不够快
net_wait_timeout
并被杀
答案3
您是否打开连接,执行不涉及连接的冗长操作,然后尝试查询?如果是这种情况,mysql 可能由于 wait_timeout 而断开连接。只需在发出查询之前重新连接即可。