在尝试导入大型SQL数据库文件时,使用DBeaver MySQL时出现错误。

3
    C:\Program Files\MySQL\MySQL Server 5.7\bin\mysql.exe --host=localhost --port=3306 -u root nd7b265_rahetbally
Task 'MySQL script' started at Sun May 31 09:53:09 MST 2020
ERROR 2013 (HY000) at line 118827: Lost connection to MySQL server during query
Task 'MySQL script' finished at Sun May 31 09:53:13 MST 2020
2020-05-31 09:53:13.363 - IO error: Process failed (exit code = 1). See error log.
2020-05-31 09:53:13.363 - java.io.IOException: Process failed (exit code = 1). See error log.
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:182)
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:237)
    at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:52)
    at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

MySQL错误日志显示了什么(如果有的话)? - Dave
5个回答

8

将连接设置从 --host=localhost 改为 --host=127.0.0.1 即可。

我试过可以用。


1
你帮了我。但是类似的 bug。在退出代码为 2 的情况下。我有这个问题。谢谢。 - Ivan Pirus
无法相信这在 macOS 上起作用了。谢谢。 - JEX

3

0

OutOfMemoryError通常发生在Java虚拟机(JVM)没有足够的内存来分配时。要解决DBeaver中的这个问题,您可以尝试增加分配给JVM的内存。

找到dbeaver.ini文件:

在Windows上,它位于DBeaver安装目录下(例如C:\ Program Files \ DBeaver)。 在macOS上,右键单击DBeaver应用程序,单击“显示包内容”,然后导航到Contents / Eclipse。 在Linux上,它位于/ usr / share / dbeaver目录或您安装DBeaver的目录中。 在文本编辑器中打开dbeaver.ini文件。

在文件中查找以下行:

-Xms64m
-Xmx1024m

这些值指定了JVM的初始和最大内存分配。 -Xms选项设置初始堆大小,-Xmx选项设置最大堆大小。

通过修改这些值来增加内存分配。例如,您可以将它们更改为:

-Xms128m
-Xmx2048m

这个更改将把初始堆大小设置为128 MB,最大堆大小设置为2048 MB(2 GB)。

保存更改到dbeaver.ini文件并关闭它。

重新启动DBeaver以使更改生效。

如果您仍然遇到OutOfMemoryError,请尝试进一步增加-Xmx值。但是,请记住,为DBeaver分配过多的内存可能会导致系统上的其他应用程序耗尽内存。请根据系统可用内存分配合理的内存量。


-1

在mysql客户端程序中,您可以按照以下方式配置maxallowedpacket。 输入图像描述

在mysql服务器上,max_allowed_package位于mysqld.conf文件中(mysql 5.7版本)。

enter image description here

如果数据库大小超过7GB,您必须使用256MB的技巧,如https://dev59.com/Emsz5IYBdhLWcg3wYGoz#35599592所述。


-2
我通过在 [mysql] 部分添加以下行来解决它:
wait_timeout = 28800 interactive_timeout = 28800 max_allowed_packet=100M

1
[mysql] 部分在哪里?谢谢! - Alvaro
这个部分在哪里? - Waleed Al Harthi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接