我有一个非常大的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选项有什么想法可以帮助我解决这个问题?
答案 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实例,并转储你提到的一个或多个表。