mysqldump:错误1317:运行数据库备份时查询执行被中断

时间:2012-12-24 11:54:02

标签: mysql mysqldump cloudfoundry

在服务器(CloudFoundry)中运行数据库备份运行命令时出现此错误:

mysqldump: Error 1317: Query execution was interrupted when dumping table `attac
hment` at row: 26

为什么会出现这样的错误?是因为mysql杀死了一些花费太多时间的进程..?还是因为任何其他原因?

2 个答案:

答案 0 :(得分:1)

CF确实杀死查询进程花了超过3秒。请尝试以下步骤,看看是否可以解决问题:

1)vmc tunnel service_name

2)为隧道命令选择“无”

3)启动一个单独的mysqldump进程,其中包含一些调整选项,例如--where

看看它是否可以通过。

答案 1 :(得分:0)

我正在使用一个约 140GB 的数据库,但遇到了同样的错误。

$ mysql --version
mysql  Ver 14.14 Distrib 5.6.51, for Linux (x86_64) using  EditLine wrapper

就我而言,我想将数据库移动到另一台服务器,因此我首先在 /etc/my.cnf 中启用了这些设置以设置复制过程。

log-bin=mysql-bin
server-id=1

我重新启动了服务器,以便主服务器开始记录以进行复制。
然后我添加了这些设置以防止 Error 1317 超时。特别是对于大表查询,读/写超时以前太低了。

net_read_timeout=9999
net_write_timeout=9999
net_retry_count=999

然后我使用这个命令来获取转储,利用“时间点”。
由于“服务器 2”尚未启动,它将转储所有内容。
在我为服务器 2 打开复制后,它将提取自此转储以来的所有新记录。
如果您不进行复制,则可以省略 --master-data=2

sudo mysqldump --compress --max-allowed-packet=1G --master-data=2 --single-transaction --databases ${dbname} -r ${backupname}
花了大约 4 小时才完成。

这是我完整的 /etc/my.cnf 供参考 -

$ cat /etc/my.cnf
[mysqld]
innodb_file_per_table=1
default-storage-engine=MyISAM
performance-schema=0
max_allowed_packet=268435456
open_files_limit=10000
innodb_buffer_pool_size=1G
bulk_insert_buffer_size=20971520
query_cache_type=1
query_cache_size=16777216
log-bin=mysql-bin
server-id=1
net_read_timeout=9999
net_write_timeout=9999
net_retry_count=999