如何恢复大型 MySQL 数据库

恢复大型 MySQL 数据库

恢复大型数据库时,通常会遇到如下所示的两个错误:

“MySQL 服务器已断开连接”和“查询过程中与 MySQL 服务器的连接丢失”

这些错误意味着 MySQL 服务器 (mysqld) 超时,如果在指定的时间段内没有任何反应,则会关闭连接。

以下是一些错误示例:

  • 一般错误:2006 MySQL 服务器已断开连接
  • 错误代码:2013。查询过程中与 MySQL 服务器的连接丢失。
  • 警告:发送 QUERY 数据包时出错
  • PDOException:SQLSTATE[HY000]:一般错误:2006 MySQL 服务器已断开连接

要解决此问题,请按照以下步骤操作:

恢复大型数据库需要调整多个参数。

  • 连接超时
  • 最大允许数据包
  • 网络缓冲区长度
  • 等待超时
  • 交互式超时
  • 网络写入超时
  • 网络读取超时

这里,我们考虑恢复一个16GB 的数据库:

恢复大型数据库时,我们需要按如下方式设置值:

  • 连接超时时间 = 3600
  • max_allowed_pa​​cket = 1024 MB
  • net_buffer_length = 1000000
  • wait_timeout = 86400(即 24 小时)
  • interactive_timeout = 86400(即 24 小时)
  • net_write_timeout = 3600
  • net_read_timeout = 3600

使用上述数值和以下命令,您可以顺利恢复数据库。

此外,恢复时间还取决于服务器的处理器和内存。

使用下面显示的命令从命令行恢复数据库。

恢复大型数据库需要更长时间,因此如果 SSH 连接断开,请使用 screen 运行命令:

  • 创建屏幕会话:

screen -S 屏幕名称

  • 现在,运行以下命令:

mysql -u root -p --max_allowed_pa​​cket=1024M --connect_timeout=3600 --net_buffer_length=1000000 --wait_timeout=86400 --interactive_timeout=86400 --net_write_timeout=3600 --net_read_timeout=3600 database-name < database.sql

或者,您可以使用 MySQL Workbench 来恢复大型数据库。

此文章对您是否有帮助? 0 用户发现这个很有用

相关文章

个人学习选择1H1G云服务器够用吗

对于刚开始接触服务器运维、网站部署、Linux基础、编程环境搭建等方向的个人学习者而言,一个常见的问题是:1H1G配置的云服务器是否足够使用?这类配置通常指1核CPU、1GB内存、20GB左右S...

如何在 Ubuntu 上使用 WordOps 安装 WordPress

什么是 WordOps? WordOps 是一款功能强大的命令行工具,专为在 Linux 服务器上部署和管理 WordPress...

使用“Automysqlbackup”自动执行MySQL数据库备份

自动mysql备份具有以下几个优点: 定期备份:自动创建每日、每周和每月备份。 减少错误:消除手动备份过程中人为错误的可能性。 支持多个数据库:能够同时处理多个 MySQL...

IPv4 与 IPv6

互联网协议地址(IP)是一种为互联网上的设备分配标签的方式。该协议允许我们唯一地识别连接到互联网的每个设备。这使得设备之间可以虚拟连接,从而传输数据。您可能听说过两种互联网协议:IPv4 和...