MYSQL Row size too large (> 8126) 的错误

MYSQL Row size too large (> 8126) 的错误

  • 错误1:
    ERROR 1118
    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.
    原因:字段太多,超过mysql默认配置的字段数量了,可以通过修改配置来扩大数量。

  • 或者是错误2:
    com.mysql.jdbc.PacketTooBigException: Packet for query is too large
    原因:每次传输的包太大了,超过了配置文件里配置的最大包大小了。

  • 解决步骤

  • 步骤1:知道要修改哪些配置参数:
    对于原因1,我自己是添加了3个配置参数:
    innodb_log_file_size = 500M
    innodb_log_buffer_size = 800M
    innodb_strict_mode = 0
    对于原因2,只需添加1个参数:
    max_allowed_packet = 256M
    前面3个参数是我参考这个得出来的:https://stackoverflow.com/questions/22637733/mysql-error-code-1118-row-size-too-large-8126-changing-some-columns-to-te

  • 步骤2:编辑my.ini配置文件,将上面的参数输进去
    linux下是:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    编辑完my.ini之后,按Ctrl + X退出,按提示输入Y然后回车保存

windows下的my.ini所在位置:
https://blog.csdn.net/Sunshine_ZCC/article/details/75195953
(注: 如果已经配置了AAA=123,又想配置AAA=456,记得注释掉其中一个,否则mysql会以最后出现的为准。)

  • 步骤3:重启mysql服务
    linux下:
    /etc/init.d/mysqld restart 或者 service mysqld restart 或者 service mysql restart,然后输入密码。如图:

windows下:好像好像是在任务管理器里的服务那里,重启mysql服务,好像要重启多个mysql的服务

  • 说明
    这是百度上找的解决方案,原文链接在下面
    原文:https://blog.csdn.net/qijingpei/article/details/85758725

你可能感兴趣的:(MYSQL Row size too large (> 8126) 的错误)