安装opencms使用mysql数据库时,出现错误
- MySQL system variable 'max_allowed_packet' is set to 1048576 Byte (1MB).
- Please note that it will not be possible for OpenCms to handle files bigger than this value in the VFS.
- Error while checking the server configuration!
- -------------------------------------------
- Your 'max_allowed_packet' variable is set to less than 16777216 Byte (16MB).
- The required value for running OpenCms is at least 16MB.Please change your MySQL configuration (in the my.ini or my.cnf file).
解决如下:
这个问题是因为导入的sql文件大于系统默认的max_allowed_packet的值,解决方法:比如在my.cnf修改增加到:max_allowed_packet=16M #或者更高,当然也可以在mysqld启动的时候加入这个参数,但是该变量必须在mysqld重新启动的时候才加载生效,所以必须重起mysqld!
参见兄弟博客是把
max_allowed_packet参数加载到了mysql启动文件mysqld中,mysqld文件部分设置如下:
- ${MYSQL}/bin/mysqld --user=mysql --datadir=${MYSQL}/data "$@" \
- --language=${MYSQL}/share/mysql/english -O max_connections= 500 -O wait_timeout= 600 \
- -O key_buffer=32M --max_allowed_packet=32M --port=${port} --socket=/tmp/mysql.sock &
其中 --max_allowed_packet=32M必须有前面的――符号。
关于max_allowed_packet一些资料:
许多MySQL程序有一些内部变量可以在运行时设置。程序变量的设置与带有值的其它长选项相同。
例如,mysql有一个max_allowed_packet变量,可以控制其通信缓冲区的最大长度。要想为mysql将max_allowed_packet变量的值设置为16MB,使用下面的任何一个命令:
shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M
第1个命令以字节指定值。第2个命令以兆字节指定值。变量值可以有一个后缀K、M或者G(可以为大写或小写)来表示千字节、兆字节或者十亿字节的单位。
在选项文件中,变量设定值没有引导破折号:
[mysql]
max_allowed_packet=16777216
或:
[mysql]
max_allowed_packet=16M
如果你喜欢,变量名的下划线可以为破折号。
注:max_allowed_packet参数是在mysql4以后才有的,在mysql4以前版本,还没有这个参数
此外,还可以通过再/etc/增加my.cnf文件,在my.cnf中设置max_allowed_packet=16M,然后重启mysql也可.至于my.cnf的获得,可以从mysql主目录的support-files下通过更改模版得到.