报错日志:
Cause: java.sql.SQLException: Row 133 was cut by GROUP_CONCAT()
...
Cause: java.sql.SQLException: Row 133 was cut by GROUP_CONCAT()\n; uncategorized SQLException; SQL state [HY000]; error code [1260]; Row 133 was cut by GROUP_CONCAT();
通过报错日志可以看到是使用GROUP_CONCAT函数报错,查找原因发现是拼接的字符串过长导致无法返回结果。
通过查找资料是由于group_concat_max_len参数设置导致的。
查找参数的配置:
show variables like "group_concat_max_len";

根据结果显示,默认的可拼接串最大长度不超过1024个字节,期望能够扩大允许的拼接字符串最大长度。
扩大允许拼接字符串的最大长度。总共有两种更改方式:
group_concat_max_len=102400
配置完成后,进入服务,选择MySQL服务,重新启动。

重启后,执行查看最大允许长度已调整成102400。

连接到数据库后,执行以下命令:
# 从原先的1024字节(1kb)调整为102400字节(100kb),全局会话
SET GLOBAL group_concat_max_len = 102400;
# 从原先的1024字节(1kb)调整为102400字节(100kb),当前会话
SET SESSION group_concat_max_len = 102400;
与Windows环境类似,一般配置文件所在位置为:/etc/my.cnf
使用vim进入到配置文件编辑模式,加上以下配置:
group_concat_max_len=102400
重启数据库:
systemctl restart mysqld
重新连接数据库后,检查是否生效:
show variables like "group_concat_max_len";
命令行修改方式与Windows一致,不再赘述。