使用 MySQL max_allowed_packet 增加 Bugzilla 附件大小
Bugzilla是一个开源错误跟踪系统,使用 MySQL 作为数据库。当您尝试将文档附加到大小超过 1MB 的错误时,您将收到如下所示的错误消息。本文介绍了如何通过更改 MySQL max_allowed_packet 数据库参数和 bugzilla maxattachmentsize 参数来解决此问题。
当 MySQL 客户端或 mysqld 服务器收到大于 max_allowed_packet 字节的数据包时,它会发出数据包太大错误并关闭连接。
MySQL 客户端的默认 max_allowed_packet 值为 16MB。MySQL 服务器的默认 max_allowed_packet 是 1MB。对于 bugzilla 附件,我们需要增加 MySQL 服务器的 max_allowed_packet 大小。
Bugzilla error message:
The file you are trying to attach is 1396 kilobytes (KB) in size. Non-patch
attachments cannot be more than 1000 KB.
We recommend that you store your attachment elsewhere on the web,
and then insert the URL to it in a comment, or in the URL field for this bug.
Alternately, if your attachment is an image, you could convert it to a
compressible format like JPG or PNG and try again.
1.更改Bugzilla中的maxattachmentsize参数
登录 bugzilla 并单击页脚区域“编辑”部分旁边的“参数”链接。这将显示如下所示的 bugzilla 配置菜单。单击“附件”菜单项以显示所有与 bugzilla 附件相关的配置参数。将maxattachmentsize的值更改为 3000,以获得 3MB 的限制。
maxattachmentsize是非补丁附件的最大大小(以千字节为单位)。Bugzilla 将不接受大于此千字节数的附件。要接受任何大小的附件(受服务器软件的限制),请将此值设置为零。
2.更改MySQL数据库中的max_allowed_packet参数
将max_allowed_packet=3M添加到 MySQL 配置文件:/etc/my.cnf 中,如下所示。
[db-server]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
max_allowed_packet=3M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/lib/mysql/mysql.sock
重启 MySQL 数据库使新的 max_allowed_packet 参数生效。
[db-server]# /etc/rc.d/init.d/mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
经过以上两个改动后,你可以在bugzilla上上传最大3MB的附件。此外,有时当您恢复 MySQL 备份时,您可能会收到以下错误消息。
Got a packet bigger than 'max_allowed_packet' bytes
要解决此问题,请将 max_allowed_packet 如上所述增加到 32MB 或更多。
- 点赞
- 收藏
- 关注作者
评论(0)