MySQL数据导入 [ERR]1118 解决方法

一、报错说明

MySQL8.0数据导入时报错,错误提示如下所示:

[ERR] 1118 - Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.

二、报错原因

         一般在执行创建表或者增加字段时,如果row size长度过长,会导致出现此错误。错误提示说:行大小过大(>8126),将某些列更改为TEXT或BLOB,或使用ROW_FORMAT=DYNAMIC或ROW_FORMT=COMPRESED可。

三、报错处理
  1. 方法一

    修改建表语句。varchar字段的值根据需求,尽量设计的小,或者将大的varchar字段类型修改为 text类型或blob类型。但是这种方式需要修改表结构,对现有的产品不适合。

  2. 方法二

    修改 innodb_strict_mode 参数的限制, 修改参数值为 off,再导入数据。建议数据同步完成后,修改回 ON。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要将 MySQL 数据导入 Java,你需要使用 Java 的 JDBC API 与 MySQL 数据库进行交互。下面是一些基本步骤: 1. 下载并安装 MySQL JDBC 驱动程序。 2. 在 Java 代码中导入 MySQL JDBC 驱动程序。 3. 连接到 MySQL 数据库,使用 DriverManager.getConnection() 方法。 4. 创建一个 Statement 对象,使用 Connection.createStatement() 方法。 5. 编写 SQL 查询或更新语句。 6. 使用 Statement 对象执行 SQL 语句,使用 Statement.executeUpdate() 方法执行更新语句,使用 Statement.executeQuery() 方法执行查询语句。 7. 处理结果,如果是查询语句,使用 ResultSet 对象读取结果集。 下面是一个简单的示例代码,演示如何连接到 MySQL 数据库并执行查询语句: ```java import java.sql.*; public class MySQLDemo { public static void main(String[] args) { try { // 加载 MySQL JDBC 驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 连接到 MySQL 数据库 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // 创建 Statement 对象 Statement stmt = conn.createStatement(); // 编写 SQL 查询语句 String sql = "SELECT name, age FROM users"; // 执行查询语句 ResultSet rs = stmt.executeQuery(sql); // 处理结果集 while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(name + ", " + age); } // 关闭连接和 Statement 对象 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { System.err.println("Error: " + e.getMessage()); } } } ``` 在这个例子中,我们连接到名为 "mydatabase" 的 MySQL 数据库,用户名为 "username",密码为 "password"。然后,我们执行一个简单的查询语句,将结果集输出到控制台。最后,我们关闭连接和 Statement 对象。 当你运行这个程序时,你应该能够看到从 MySQL 数据库中检索出的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值