我正在使用约 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