重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: MYSQL导入数据报错:ERROR 1118 (42000) at line 50: Row size too large (> 8126) [打印本页]

作者: 郑全    时间: 2026-8-10 22:14
标题: MYSQL导入数据报错:ERROR 1118 (42000) at line 50: Row size too large (> 8126)
本帖最后由 郑全 于 2026-8-10 22:17 编辑

在mysql 8.0.46 下,导入数据,报错:ERROR 1118 (42000) at line 50: Row size too large (> 8126):具体如下:

[root@oracle40 ~]# mysql -uroot -pRoot@12345 v8x < v8x_full.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1118 (42000) at line 50: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

原因是:MySQL8.0 虽然默认行格式是 DYNAMIC,但建表语句没显式指定 ROW_FORMAT,建表时自动用 COMPACT 行格式,单行字段总长度超过 8126 字节触发报错。

解决办法:
   1. 临时修改 my.cnf 全局默认行格式
      vim /etc/my.cnf

    [mysqld]
    innodb_default_row_format = dynamic               ---
    innodb_strict_mode = 0        。。。
    max_allowed_packet=1G

  2.重启 mysql

       systemctl restart mysqld
     再执行导入,不再报错。











欢迎光临 重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2