MySQL 'max_allowed_packet'

安装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下通过更改模版得到.

你可能感兴趣的:(mysql)