Mysql MariaDB jdbc连接在大容量插入期间失败

Mysql MariaDB jdbc连接在大容量插入期间失败,mysql,jdbc,mariadb,Mysql,Jdbc,Mariadb,我在MariaDB中有一个表,具有以下规格: CREATE TABLE `pages_txt` ( `id` INT(10) UNSIGNED NOT NULL, `title` TEXT NOT NULL, `txt` MEDIUMTEXT NOT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=MyISAM; 我想在这个表中插入大约200万条记录。 但是,在插入约160K记录后,连接断开

我在MariaDB中有一个表,具有以下规格:

CREATE TABLE `pages_txt` (
    `id` INT(10) UNSIGNED NOT NULL,
    `title` TEXT NOT NULL,
    `txt` MEDIUMTEXT NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;
我想在这个表中插入大约200万条记录。 但是,在插入约160K记录后,连接断开,我收到此异常:

at Main.main(Main.java:57)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.mariadb.jdbc.internal.common.QueryException: Could not send query: Last packet not finished
    at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:954)
    at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:278)
    ... 21 more
Caused by: java.io.IOException: Last packet not finished
    at org.mariadb.jdbc.internal.common.packet.PacketOutputStream.startPacket(PacketOutputStream.java:38)
    at org.mariadb.jdbc.internal.common.packet.commands.StreamedQueryPacket.send(StreamedQueryPacket.java:76)
    at org.mariadb.jdbc.internal.mysql.MySQLProtocol.executeQuery(MySQLProtocol.java:952)
    ... 22 more
java.sql.SQLNonTransientConnectionException: Could not send query: Last packet not finished
    at org.mariadb.jdbc.internal.SQLExceptionMapper.get(SQLExceptionMapper.java:136)
    at org.mariadb.jdbc.internal.SQLExceptionMapper.throwException(SQLExceptionMapper.java:106)
    at org.mariadb.jdbc.MySQLStatement.executeQueryEpilog(MySQLStatement.java:262)
    at org.mariadb.jdbc.MySQLStatement.execute(MySQLStatement.java:285)
    at org.mariadb.jdbc.MySQLStatement.executeUpdate(MySQLStatement.java:313)
    at org.mariadb.jdbc.MySQLPreparedStatement.executeUpdate(MySQLPreparedStatement.java:156)
    at Main$1.process(Main.java:50)
但是MariaDB服务器已经启动并工作了!JDBC连接器中有任何错误吗??? 版本是5.5.32-MariaDB。

您是否尝试过使用MySQL连接器/J?MySQL和MariaDB是二进制兼容的,我从来没有遇到过任何问题。MySQL连接器的好处是拥有更大的社区。


您是否尝试过使用MySQL连接器/J?MySQL和MariaDB是二进制兼容的,我从来没有遇到过任何问题。MySQL连接器的好处是社区规模大得多。

请在JIRA()中提交一个bug,并包含您的数据文件。还包括数据库的参数等。当我遇到这种情况时,我使用JBoss AS 7 Final将mariaDB用作我的数据源。在我决定在JBoss运行时删除数据库,然后重新创建数据库之前,它一直工作得很好。我所做的只是重新启动JBoss,请在JIRA()中提交一个bug,并包含您的数据文件。还包括数据库的参数等。当我遇到这种情况时,我使用JBoss AS 7 Final将mariaDB用作我的数据源。在我决定在JBoss运行时删除数据库,然后重新创建数据库之前,它一直工作得很好。我所做的只是简单地重新启动JBoss。如果您有许可问题,MariaDB J Connector附带的LGPL比MySQL(GPL)的限制要小。您的回答不正确,但通过使用MySQL Connector,我发现错误在MariaDB的JDBC驱动程序中。因此,我接受了这一点:)如果您有许可方面的顾虑,MariaDB J连接器附带的LGPL比MySQL(GPL)的限制要小。您的回答不正确,但通过使用MySQL连接器,我发现缺陷存在于MariaDB的JDBC驱动程序中。因此,我接受了这一点:)