如何在没有崩溃的情况下mysqldump Windows工作站上的大型数据库?

时间:2016-03-05 12:03:44

标签: mysql mysqldump

我有一个非常大的MySQL数据库(总共2027个文件和4.81gb的mysql /数据),用于Drupal站点。我有一些工作要做,并已将数据库下载到我的工作站(严格准确,我将其加载到OS X下运行Windows的VirtualBox VM),成功将其加载到mysql(所以我实际上已经运行了网站VM,使用Acquia DevDesktop运行所有内容。)

我想备份数据库,所以请使用经典的命令行:

#include <iostream>
#include <map>
#include <string>

int main()
{
    std::string input = "slowly";

    std::map<char, int> occurrences;

    for (char character : input)
    {
        occurrences[character] += 1;
    }

    for (auto& entry : occurrences)
    {
        std::cout << entry.first << '=' << entry.second << std::endl;
    }
}

麻烦的是,该操作导致mysql服务器在非常大的表上崩溃。我得到的消息是mysqldump“在转发时在查询时丢失了与MySQL服务器的连接”表格在第3134695行。

事实上,服务器崩溃了,必须重新启动。

我想知道是否存在内存问题,所以尝试使用这些选项:

mysqldump -u drupaluser eco > 20160305-eco.sql

但这给了我完全相同的错误。有没有人对mysqldump选项有什么想法可以帮助我解决这个问题?

1 个答案:

答案 0 :(得分:0)

阅读本文,了解有关使mysqldump快速运行的一般提示。 https://dba.stackexchange.com/questions/20/how-can-i-optimize-a-mysqldump-of-a-large-database

在转储数据库之前确保数据库安静。它不应该有其他活动客户端运行它。

您已尝试--quick。它使你的大型innodb表不会破坏你的事务缓冲区。

尝试为VM提供更多磁盘空间。你可能已经不多了。

一次一个地转储你的桌子,最重要的是。

尝试在mac上运行mysqldump。您的virtualbox vm有一个IP地址,类似于192.168.137.100。阅读本文以了解有关查找此IP地址的信息。 https://forums.virtualbox.org/viewtopic.php?f=1&t=36592

然后,在mac的shell上执行此操作。

mysqldump -h 192.168.xxx.xxx -u username -p password etc etc

这应该将mac上的mysqldump连接到vm中的mysql实例,并转储你提到的一个或多个表。