mysql - MariaDB jdbc 连接在批量插入期间失败

标签 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 条记录后连接中断,我收到此异常:

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。

最佳答案

https://dev.mysql.com/downloads/connector/j/

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

关于mysql - MariaDB jdbc 连接在批量插入期间失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693800/

相关文章:

php - SQL:如何根据标志在所有区域下方显示事件(在没有多对多连接的情况下)

mysql - 如何在 MySQL 中更改 root 用户名

java - 错误消息 : java. sql.SQLException:列索引无效

oracle - 如何使用 JdbcTemplate(或普通 JDBC)从 Oracle 获取小写字符列的生成键

mysql - 通过 yum 从 MariaDB 5.5 升级到 MariaDB 10 失败

sql - 如何在 MariaDB 中更新基于连接表的行?

python - 在 mySQL 上设置 UTF8

java - Tapestry/JDBC - 存储日期

mysql - 恢复我的 root 用户在 MariaDB 上的 DBA 权限

MYSQL 在解释计划中使用 TYPE 'ALL'