gpt4 book ai didi

mysql - ERROR 2006 (HY000) 行 MySQL 服务器已消失

转载 作者:行者123 更新时间:2023-11-29 23:53:36 32 4
gpt4 key购买 nike

问题

我在 Mysql DB 转储和恢复期间遇到此错误。在任何地方发布的解决方案都没有解决我的问题,所以我想我为后代发布了我自己找到的答案。

  • 源环境:CentOS 4 i386 ext3,Mysql 5.5 dump,大多数表引擎是MySIAM,有少量InnoDB。
  • 目标环境:CentOS 6 x66_64 XFS,Mysql 5.6

源数据库在磁盘上为 25GB,gzip 压缩转储为 4.5GB。

转储

从源 -> 目标转储命令的运行方式如下:

mysqldump $DB_NAME | gzip -c | sudo ssh $USER@$IP_ADDRESS 'cat > /$PATH/$DB_NAME-`date +%d-%b-%Y`.gz'

这会即时进行转储、gzip,并通过 SSH 将其写入源。您不必这样做,但它很方便。

导入

在新的源数据库上,我像这样运行导入:

gunzip < /$PATH/$DB_NAME.gz | mysql -u root $DB_NAME

请注意,在开始导入之前,您必须发出 CREATE DATABASE DB_NAME SQL 来创建新的空目标数据库。

每次尝试此操作时,我都会遇到此类错误:

ERROR 2006 (HY000) at line MySQL server has gone away

源数据库配置

我的源数据库是使用 VMWare 的虚拟服务器,因此我可以根据需要调整 RAM/CPU 的大小。对于这个项目,我暂时扩展到 8CPU/16GB RAM,然后在导入后缩小。这是我所拥有的奢侈,而你可能没有。

有了这么多的 RAM,我能够对/etc/my.cnf 文件进行调整。其他人都建议增加

max-allowed-packet
bulk_insert_buffer_size

将默认值加倍或三倍。这并没有解决我的问题。然后我在网上阅读了更多内容后尝试增加超时。

interactive_timeout
wait_timeout
net_read_timeout
net_write_timeout
connect_timeout

我这样做了,但还是没用。然后我就发疯了,把一切都定得不合理的高。这是我最终得到的结果:

key_buffer_size=512M
table_cache=2G
sort_buffer_size=512M
max-allowed-packet=2G
bulk_insert_buffer_size=2G
innodb_flush_log_at_trx_commit = 0
net_buffer_length=1000000
innodb_buffer_pool_size=3G
innodb_file_per_table
interactive_timeout=600
wait_timeout=600
net_read_timeout=300
net_write_timeout=300
connect_timeout=300

还是没有运气。我感到泄气。然后我注意到导入在同一个地方一直失败。所以我回顾了SQL。我没有注意到任何奇怪的事情。日志文件中也没有任何内容。

解决方案

数据库结构的某些问题导致导入失败。我怀疑这与尺寸有关,但谁知道呢。

为了解决这个问题,我开始将转储分成更小的 block 。源数据库大约有 75 个表。所以我做了 3 个转储,每个转储大约 25 个。您只需将表名传递给转储命令即可。例如:

mysqldump $DB_NAME $TABLE1> $TABLE2....$TABLE25 | gzip -c | sudo ssh $USER@$IP_ADDRESS 'cat > /$PATH/$DB_NAME-TABLES1-25`date +%d-%b-%Y`.gz'

然后我只是将每个 block 独立地导入到目的地。最后,没有错误。希望这对其他人有用。

最佳答案

这个问题的答案是按表将转储分成 block 。然后进行多次导入。请参阅原始帖子中的详细信息。

关于mysql - ERROR 2006 (HY000) 行 MySQL 服务器已消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25476204/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com