在开发过程中,我们的本地WAMP服务器如何从测试服务器获取最新数据的方式是对数据库进行转储,然后我们使用source命令上传该转储,以加载.sql文件。
最近,在导入的最后,我们收到了关于@old变量的错误,这些变量在更改之前存储了原始设置,如外键约束(因此,关闭外键约束,以便导入在重新创建表时不会抛出错误,并在尚未创建其中一个表时尝试创建外键)。我已经找出了原因是product表获得了越来越多的数据,并且在导入期间会话超时。
我想知道我可以设置什么设置(作为my.ini文件中SQL查询的一部分)来停止所有超时,实际上使会话在我们登录时永远持续。
发布于 2013-07-05 13:44:35
导入大型MySQL数据库的策略
PHPMyAdmin导入
如果您正在阅读本文,可能会发现PHPMyAdmin不是用于大型MySQL数据库导入的选项。尽管如此,它总是值得一试,对吧?PHPMyAdmin导入失败的最常见原因是超出导入限制。如果您在本地工作或有自己的服务器,可以尝试更改通常位于MySQL安装文件夹中的my.ini文件中的MySQL ini设置。如果您正在Windows上使用WAMP,则可以使用MySQL > my.ini下的WAMP控制面板访问该文件。请记住重新启动WAMP,以便使用您的新设置。您可能希望在此处增加的设置包括:
max_allowed_packet
read_buffer_size即使使用增强的MySQL导入设置,您也可能会发现由于PHP设置而导致导入超时。如果您有权访问PHP.ini,则可以对最大执行时间和相关设置进行编辑。在WAMP中,通过PHP > php.ini访问WAMP控制面板下的PHP.ini文件。在尝试大型MySQL导入时,请考虑提高以下设置的限制:
max_execution_time
max_input_time
memory_limit使用大转储交错MySQL转储导入程序
如果基本PHPMyAdmin导入不起作用,您可能需要尝试使用Ozerov.de中的大转储脚本进行交错MySQL导入。这个脚本的作用是在较小的块中运行导入,这正是成功导入大型MySQL转储经常需要的。它可以在http://www.ozerov.de/bigdump/上免费下载。
使用大转储的过程相当简单:您基本上将SQL导入文件和大转储脚本放在服务器上,在大转储脚本中设置一些配置,然后运行脚本。Big Dump会处理剩下的事情!
关于这个很好的选项的一个关键点是,它在包含扩展插入的MySQL导出上根本不起作用。因此,如果您有防止扩展插入的选项,请尝试它。否则,您将不得不使用另一种方法来导入大型MySQL文件。
MySQL console的Go命令行
如果您正在运行WAMP (即使您没有运行),总是可以选择直接使用MySQL控制台导入您的大型MySQL数据库。在我写这篇文章的时候,我以这种方式导入了一个4 4GB的数据库。这就是为什么我有一些时间来写,因为当你有一个4 4GB的SQL文件要导入时,即使是这种方法也需要时间!
一些开发人员(通常是我)会因为打开黑屏并在其中输入神秘的命令而感到害怕。但是它可以是解放的,当涉及到MySQL数据库时,它通常是最好的方法。在WAMP中,我们从WAMP控制面板的MySQL > MySQL Console访问MySQL控制台。现在,让我们学习导入MySQL数据库所需的两个简单的MySQL控制台命令,命令行风格:
use `db_name`后跟数据库名称的命令use将告诉MySQL控制台您要使用哪个数据库。如果您已经设置了要导入到的数据库,那么可以通过发出use命令开始。假设您的数据库名为my_great_database。在这种情况下,请在MySQL控制台发出以下命令。请注意,命令必须以分号结尾。
mysql-> use my_great_database;
mysql-> source sql_import_file.sql命令source,后跟SQL文件的位置,将把SQL文件导入到您之前使用use命令指定的数据库。您必须提供路径,所以如果您在本地服务器上使用WAMP,首先要将SQL文件放在容易获得的位置,比如C:\sql\my_import.sql。包含此示例路径的完整命令为:
mysql-> source C:\sql\my_import.sql;在运行该命令之后,应该开始导入SQL文件。让查询运行,并在关闭MySQL控制台之前完成导入。
可以在这里找到有关MySQL命令行的更多文档:http://dev.mysql.com/doc/refman/5.5/en/mysql.html。
另一种解决方案是使用MySQL Workbench。
发布于 2015-11-28 00:52:07
这个解决方案对我很有效:
max_allowed_packet <-- --> upped size to 8M
read_buffer_size <-- --> upped from 256 to 512在本地主机上使用Xampp控制面板。对MySQL配置中的my.ini文件进行更改后,不要忘记退出Xampp (或Wamp)并重新启动它,以使更改生效。
(经过四天的努力,我终于把它修好了!)
症状在导入上:#2006 MySql服务器消失了。但是,从87个表行中只导入了10个表行。
发布于 2016-06-19 21:38:45
考虑使用MySQL Workbench,它是免费的,可以很好地处理非常大的脚本(从菜单中选择: SQL -> Open SQL Script -如果它很大,它会问你是否想运行它)。多年来在处理大型SQL转储时为我提供了很好的帮助。
https://stackoverflow.com/questions/17481716
复制相似问题