3

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

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

为什么它给出这样的错误?是因为mysql杀死了一些需要太多时间的进程..?还是因为其他原因?

4

2 回答 2

1

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

1) vmc 隧道服务名称

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

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

看看能不能通过。

于 2013-01-07T18:15:33.903 回答
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
于 2021-05-28T13:17:41.677 回答