环境:Window XP 、 MetaMatrix 5.4 、JDK1.5、Mysql 5.1.53
安装完MetaMatrix Server,为了使其能够正常使用,需要配置。
配置中有一步操作是进行数据库的初始化,发生如下异常:
从异常可以看出,是Mysql读写数据时发生异常,提示需要设置max_allowed_packet参数。
打开mysql目录下的my.ini文件,在【mysqld】段中加入max_allowed_packet = 16M.如下图所示。
关于这个参数我们也可以在mysql安装目录下的其他文件中找到。直接复制过来也可以。
配置完此参数后,需要重启Mysql服务。并且重新设置MetaMatrix Server即可。
关于此参数的进一步解释,大家可以看看下面这段话应该就会明白了。有点不清楚的是,此值设置大了,对系统有什么影响?设置有什么依据,希望大家指点一下。
==================================================================================================
26.2.4.5.2. 准备MySQL服务器
与BLOB数据一起使用MySQL的第1步是配置服务器。首先,让我们从创建要访问的表开始。在我的文件表中,通常有4列:1个具有恰当大小的AUTO_INCREMENT列(UNSIGNED SMALLINT),用于保存识别文件的主键;1个VARCHAR列,用于保存文件名;1个UNSIGNED MEDIUMINT列,用于保存文件的大小;以及1个用于保存文件本身的MEDIUMBLOB列。对于本例,我将使用下述表定义:
CREATE TABLE file(
file_id SMALLINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
file_name VARCHAR(64) NOT NULL,
file_size MEDIUMINT UNSIGNED NOT NULL,
file MEDIUMBLOB NOT NULL);
完成表的创建后,或许需要更改max_allowed_packet系统变量。该变量决定了能够发送给MySQL服务器的信息包(即单个行)大小。默认情况下,服务器能够接受来自客户端应用程序的信息包最大为1MB。如果不打算超过1MB,情况良好。如果打算在文件传输中超出1MB,必须增加该数值。
可以使用“MySQL系统管理员的启动变量”屏幕更改max_allowed_packet选项。在“联网”选项卡的“内存”部分,恰当调整“允许的最大值”选项。完成值的调整后,点击“应用更改”按钮,并使用“MySQL管理员”的“服务控制”屏幕重新启动服务器。也可以在my.cnf文件中直接调整该值(添加1行,max_allowed_packet=xxM),或在MySQL中使用SET max_allowed_packet=xxM。
设置max_allowed_packet时应保守些,这是因为传输BLOB数据需要一段时间。恰当地设置该值,使之与预期使用相符,并在必要时增大该值。
注:本部分摘自Mysql的官方手册,参见 http://dev.mysql.com/doc/refman/5.1/zh/connectors.html
==========================================================================================================