当前位置: 首页 > 面试题库 >

导入大型sql文件时,MySQL Server已消失

曾瀚昂
2023-03-14
问题内容

我试图通过phpMyAdmin导入一个大的sql文件…但是它一直显示错误

‘MySql服务器已消失’

该怎么办?


问题答案:

如前所述这里:

MySQL服务器消失(错误2006)的两个最常见的原因(和修复)是:

服务器超时并关闭了连接。怎么修:

  1. 检查mysqld的my.cnf配置文件中的wait_timeout变量是否足够大。在Debian:上sudo nano /etc/mysql/my.cnf,设置wait_timeout = 600秒(当错误2006消失时,您可以调整/减小该值),然后设置sudo /etc/init.d/mysql restart。我没有检查,但是wait_timeout的默认值可能约为28800秒(8小时)。

2.
服务器丢弃了不正确或太大的数据包。如果mysqld收到的数据包太大或不正确,则认为客户端出了点问题,并关闭了连接。您可以通过增加my.cnf文件中的max_allowed_pa​​cket值来增加最大数据包大小限制。在Debian:上sudo nano /etc/mysql/my.cnf,进行设置max_allowed_packet = 64M(当错误2006消失时,您可以调整/减小该值),然后sudo /etc/init.d/mysql restart

编辑:

请注意,MySQL选项文件尚无其命令作为注释可用(例如php.ini中的命令)。所以,你必须键入任何变化/ TWEAK
my.cnfmy.ini并将它们放在mysql/data目录或以任何其它路径的选择,如适当的组下[client][myslqd]等。例如:

[mysqld]
wait_timeout = 600
max_allowed_packet = 64M

然后重新启动服务器。要获取它们的值,请输入mysql客户端:

> select @@wait_timeout;
> select @@max_allowed_packet;


 类似资料:
  • 问题内容: 我是一名学生,正在进行一些涉及数据挖掘的研究。我有几个自愿的“节点”服务器,这些服务器收集并生成SQL文件供我导入到我的服务器上并进行分析。 问题是,这些文件很大,我需要一种快速导入它们的方法。网络最近扩展了,现在硬盘上没有足够的吞吐量供MySQL控制台将其导入时导入。时间很重要- 进行研究存在最后期限,我想积极主动地收集尽可能多的时间,并且没有等待插入的队列。 我想知道是否有更好的方

  • 问题内容: 我有一个php脚本,用于解析XML文件并创建一个看起来像这样的大型SQL文件: 这个文件加起来超过20GB(我已经在2.5GB的文件上进行过测试,但它也失败了)。 我已经尝试过类似的命令: mysql -u root -p table_name </var/www/bigfile.sql 这适用于较小的文件,例如大约50MB。但不适用于较大的文件。 我试过了: 我也尝试了mysqlim

  • 问题内容: 我想在Windows 7计算机上导入350MB的MySQL .sql文件。我通常通过使用 因为<在Powershell中不起作用。 我的.sql文件这次出现错误。我宁愿只跳过错误的行并继续导入。如何强制在Windows上继续导入? 在基于Unix / Linux的系统上,我可以使用 但是–force似乎无法与-e“ source …”命令一起使用(可以理解的是)。 谢谢,迈克 问题答案

  • 问题内容: 我通过My​​SQL控制台导入SQL的速度相当慢,并且随着我们的SQL文件每天都在增加,我想知道是否有其他方法可以更快地导入SQL文件。 不能选择改用Oracle或其他系统,配置必须保持不变。 当前,SQL文件为:1.5 GB。我在WAMP与Apache 2.2.14,PHP 5.2.11和MySQL 5.1.41。 也许问题就在这里,导入是通过简单的方式完成的: 有什么建议? 问题答

  • 问题内容: 我有一个名为的数据库。我还没有在那创建任何表。但是我有一个SQL文件,其中包含数据库的所有必需数据。该文件位于中。该文件的大小约为103 MB。我正在使用wamp服务器。 我已在MySQL控制台中使用以下语法导入文件: 但这没有用。 问题答案: 最后,我解决了这个问题。我将“ nitm.sql”文件放在“ mysql”文件夹的“ bin”文件中,并使用以下语法。 这行得通。

  • 问题内容: 在生产环境中运行数据库种子脚本时,发生内存耗尽。 以下是我的种子脚本。 所以我要做的是在种子脚本上添加一个无限制的内容。 现在的问题是,当我运行脚本时,它将SQL脚本的内容(非常大)记录到终端中。 有没有一种在我的数据库种子内运行不占用大量内存的SQL转储的好方法?我现在所做的是手动运行它: 问题答案: 发生问题的原因是,使用Db :: unprepared时,它还将查询记录到lara