(本文档仅供参考)
问题
解决方案
...
错误现象
现象一:在保存查询时,抛出错误,报知识库访问异常,并且具体错误信息中有以下信息 "Packet for query is too large"。
现象二:在smartbi配置界面配置知识库,测试知识库成功,但界面过不去,日志报错,具体的错误信息是"longer than max_long_data_size"。
问题原因
这两种现象问题是由于 MySQL 配置中允许Server接受的数据包设置值 max_allowed_packet 太小所导致的。MySQL 默认的安装版中一般将该值设置为“200M”,如下所示:
代码块 | ||
---|---|---|
| ||
[mysqld]
max_allowed_packet=200M |
查看目前配置:
代码块 | ||
---|---|---|
| ||
show VARIABLES like '%max_allowed_packet%'; |
显示的结果为:
代码块 | ||
---|---|---|
| ||
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+ |
以上说明目前的配置是:1M
解决方法
可以有两种解决方法,通过修改配置文件、或直接在 MySQL 命令行中修改。(注:一般情况通过修改配置文件的方式,通过命令行修改可能出现不生效的情况!)
1、修改配置文件
编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
代码块 | ||
---|---|---|
| ||
max_allowed_packet = 200M
max_long_data_size = 200M |
如果找不到my.cnf可以通过“mysql --help | grep my.cnf ”命令去寻找my.cnf文件。Linux下该文件在/etc/下,查找my.cnf文件相关命令:find / -name "my.*"
修改完后需要重启mysql及smartbi服务
2、在MySQL命令行中修改
说明:此方案临时生效,重启mysql会失效。
1)在MySQL命令行中运行如下命令:
代码块 | ||
---|---|---|
| ||
set global max_allowed_packet = 200*1024*1024 |
2)然后退出命令行,再进入,查看下max_allowed_packet是否编辑成功。
代码块 | ||
---|---|---|
| ||
show VARIABLES like '%max_allowed_packet%'; |
注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。
3)重启Smartbi。
Viewtracker |
---|